Tensorflow 기반의 Convolutional Neural Network CNN(얼굴 인식) Nanny 및 클래스 자습서 구축

프로젝트 소개

TensorFlow2.X는 CNN(Convolutional Neural Network)을 구축하여 얼굴 인식을 실현합니다(자신의 얼굴을 인식할 수 있습니다!). 구축된 컨볼루션 신경망은 VGG와 같은 구조(컨볼루션 레이어와 풀링 레이어가 반복적으로 쌓인 후 완전 연결 레이어를 거쳐 마지막으로 소프트맥스를 사용하여 각 카테고리의 확률을 매핑하고 확률이 가장 높은 카테고리를 매핑합니다. 인식 결과입니다.)

다른 프로젝트

과일 및 채소 인식: 합성곱 신경망 기반 과일 인식 프로젝트
교통 표지 인식: 합성곱 신경망 기반 교통 표지 인식 프로젝트

네트워크 구조:
여기에 이미지 설명 삽입

개발 환경:

  • 파이썬==3.7
  • 텐서플로우==2.3

콘다와 파이참 설치

이미 설치되어 있다면 무시해주세요.

댓글 영역에서 가져오기 : Pycharm, Anaconda, Miniconda, TeamViewer(원격 지원), FormatFactory(포맷 팩토리)를 포함한 설치 패키지의 공유 링크.
여기에 이미지 설명 삽입

aconda를 설치하려면 Anaconda 또는 Miniconda를
선택할 수 있으며 설치 방법 및 방법은 완전히 동일합니다. 그러나 Miniconda 는 상대적으로 "가벼우며" 메모리를 거의 차지하지 않으며 Anaconda 에 비해 설치 시간이 매우 짧기 때문에 Miniconda를 선택하는 것이 좋습니다 !

다음 단계로 바로 이동하여 이 페이지의 모든 옵션을 확인하십시오. 그렇지 않으면 환경 변수가 추가되지 않습니다.
여기에 이미지 설명 삽입

다음 단계로 바로 Pycharm을 설치
하고 이 페이지에서 모두 확인합니다.
여기에 이미지 설명 삽입
원격 지원 소프트웨어 설치
원격 지원이 필요한 경우 TeamViewer를 미리 설치하십시오.
여기에 이미지 설명 삽입

데이터 세트:
여기에 이미지 설명 삽입

여기에 이미지 설명 삽입

이미지 카테고리:

  • "dilireba": "딜리레바",
  • "강웬": "장웬",
  • "lipeiyu": "리페이위(나 자신)",
  • "펭위얀": "펭위얀",
  • "장쯔이": "장쯔이",
  • : "조려영:" "조려영"

참고: 데이터 세트는 인터넷에서 가져온 것이므로 I(Li Peiyu)의 얼굴 범주 표시 사진은 코딩되었습니다.
여기에 이미지 설명 삽입

코드 디버깅

여기에 이미지 설명 삽입

프로젝트를 가져온 후 압축을 푼 후 다음 그림과 같이 파일의 압축을 풉니다.
여기에 이미지 설명 삽입

1단계: 프로젝트 폴더 열기

여기에 이미지 설명 삽입

각 파일 및 코드 소개:
여기에 이미지 설명 삽입

2단계: 개발 환경 구축

여기에 이미지 설명 삽입

가상 환경 만들기

cmd를 입력하고 Enter 키를 누르면 명령 터미널이 열리고 가상 환경 생성을 시작합니다.
여기에 이미지 설명 삽입
입력 명령은 다음과 같습니다.

conda create -n tf23_py37 python=3.7

명령을 입력하고 Enter 키를 누르면 다음 프롬프트가 나타납니다. 계속해서 Enter 키를 누릅니다.
여기에 이미지 설명 삽입

그런 다음 Enter 키를 누른 후 다음 그림과 같이 환경 이름이 "tf23_py37"이고 Python 버전이 3.7인 가상 환경을 만들었습니다.

여기에 이미지 설명 삽입

가상 환경 활성화

이 명령을 복사하고 명령줄을 입력한 다음 우리가 만든 가상 환경을 활성화합니다.

conda activate tf23_py37

여기에 이미지 설명 삽입

타사 종속성 설치

다음으로 tensorflow, matplotlib, pyqt5 등과 같이 프로젝트에 사용되는 타사 종속 라이브러리 설치를 시작합니다. 이번에 사용된 모든 종속 라이브러리는 requirements.txt 파일에 기록됩니다. 아래에서 설치를 시작하십시오.

명령 터미널에 다음 명령을 입력합니다.

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

참고 : 타사 종속 라이브러리를 설치하기 위한 위의 "-i" 명령 뒤에는 국내 미러 소스 주소가 옵니다. 설치에 실패하고 지정한 미러 소스에 해당 타사 라이브러리 종속 버전이 없다는 메시지가 표시되면 다른 미러 소스를 선택할 수 있습니다.
중국에서 일반적으로 사용되는 미러 소스 주소

清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:https://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/

아래와 같이 성공적으로 설치가 완료되면

여기에 이미지 설명 삽입

프로젝트 구성 환경 열기

여기에 이미지 설명 삽입

다음 프롬프트가 표시되는 경우:
여기에 이미지 설명 삽입

다음 프롬프트가 표시되는 경우:

여기에 이미지 설명 삽입

통역사 선택(위에서 생성한 가상 환경)

친구 참을 연 후 pycharm의 오른쪽 하단에 있는 통역사 선택을 클릭하고 "통역사 추가"를 선택한 다음 통역사 추가를 선택합니다.

여기에 이미지 설명 삽입

여기에 이미지 설명 삽입

그림의 프롬프트를 따르고 필요한 "python 인터프리터"를 추가하면 아래 그림과 같이 pycharm의 오른쪽 하단에 성공을 의미하는 표시가 나타납니다.

여기에 이미지 설명 삽입

신경망 모델 훈련

"train_cnn.py" 프로젝트의 코드를 열고 그림의 프롬프트에 따라 작동합니다.

여기에 이미지 설명 삽입
성공적인 작업의 효과는 아래 그림과 같습니다.

여기에 이미지 설명 삽입
성공적인 작업 후 다음으로 할 일은 "기다리는 것"입니다. 각 개인의 컴퓨터 구성에 따라 네트워크 교육을 위한 코드를 실행하는 시간도 다릅니다(몇 분 - 몇 시간). 기다리십시오. 오류가 보고되지 않으면 학습이 성공한 것입니다. .

학습이 성공하면 모델 폴더에 "cnn_fv.h5" 파일이 생성됩니다.

여기에 이미지 설명 삽입
학습이 성공한 후 결과 폴더에서 학습 프로세스 동안 정확도 및 손실의 변화를 기록하는 "results_cnn.png" 그림을 볼 수 있습니다.
여기에 이미지 설명 삽입
또한 "train_cnn.py"를 실행하는 논리적 단계를 따라 "train_mobilenet.py"를 실행하면 mobilenet 신경망이 훈련됩니다. 작업 결과는 CNN과의 비교 세트를 형성할 수 있습니다. 그것은 우리의 기사 작성에 더 도움이 됩니다!

시험

모델을 교육한 후 모델 테스트(모델의 성능 평가)를 시작하고 "test_model.py"를 엽니다.

여기에 이미지 설명 삽입
그림의 지침을 따르십시오.

성공적으로 실행되면 아래와 같이 결과 폴더 아래에 "heatmap_cnn.png" 열 지도가 생성됩니다(각 범주의 예측 정확도를 볼 수 있음).
범주가 많기 때문에 표시 효과가 그다지 좋지 않습니다. (-_-).
여기에 이미지 설명 삽입

예측하다

PYQT5의 GUI 인터페이스

훈련과 테스트를 거쳐 교통 표지판 인식에 사용할 수 있는 신경망 가중치를 얻었고 다음으로 인식해야 할 교통 표지판 사진을 예측하기 시작합니다. "windows.py" 코드를 열고 클릭하여 직접 실행하면 결과는 다음과 같습니다.

여기에 이미지 설명 삽입

성공적으로 실행한 후 pyqt5 GUI 인터페이스를 얻은 다음 이 GUI 작업을 사용하여 프로젝트에서 예측한 과일 그림을 예측할 수 있습니다!

Flask 웹 디스플레이

"app.py" 코드를 열고 직접 실행을 클릭하면 결과는 다음과 같습니다.

여기에 이미지 설명 삽입
콘솔에서 출력되는 링크를 클릭하거나 브라우저를 열고 URL http://127.0.0.1:5000을 입력합니다. Flask 프런트 엔드 페이지로 이동한 다음 자신의 상호 작용을 수행하고 사진을 업로드하고 예측을 클릭하면 모델이 각 범주의 신뢰도를 출력하고 웹 페이지에 큰 것부터 작은 것까지 내림차순으로 표시하고 표시합니다. 상위 카테고리 에 있는 최종 모델 의 인식 결과 입니다 .

여기에 이미지 설명 삽입

추천

출처blog.csdn.net/qq_34184505/article/details/130057132