opencv -
실시간 이미지 프로세싱을 위한 라이브러리 이미지 프로세싱이 편함
cap = cv2.VideoCapture("./video/"+VIDEO_FILE_PATH)
face_cascade = cv2.CascadeClassifier()
face_cascade.load('./data/haarcascade_frontalface_default.xml')
frame = cap.read()
#frame = frame[0:500, 0:400]
#dst = cv2.transpose(frame)
#frame = cv2.flip(dst, 1)
#얼굴인식 영상 처리
# grayframe = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# blur = cv2.GaussianBlur(grayframe,(5,5), 0)
# faces = face_cascade.detectMultiScale(blur, 1.8, 3, 0, (50, 50))
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray,
scaleFactor=1.2,
minNeighbors=5,
minSize=(100, 100),
flags=cv2.CASCADE_SCALE_IMAGE
)
#원본 이미지에 얼굴 인식된 부분 표시
for (x,y,w,h) in faces:
cx = int(x+(w/2))
cy = int(y+(h/2))
cr = int(w/2)
crop_img=frame[y:y+h,x:x+w]
crop_img=cv2.resize(crop_img,(96,96))
cv2.rectangle(frame, (x-10, y-10), (x + w+10, y + h+10), (255, 0, 0), 3, 4, 0)
count = count + 1
filename = str(count)
cv2.imwrite('./Image/'+File_Path_Name+'/'+Today+filename+'.jpg', crop_img, params=[cv2.IMWRITE_JPEG_QUALITY, 100])
anaconda -
데이터 분석에 필요한 오픈소스를 모아놓은 개발 플랫폼
Anaconda란 쉽게 말해 Python 또는 R 프로그램에 있어 필요한 라이브러리 패키지 관리 및 환경 설정등을 쉽게 해주는 도구로 보면 될 것 같다.
tensorflow -
뉴럴네트워크 기계학습을 위한 오픈소스 라이브러리 아나콘다 환경에서 사용 가능
inception -
구글에서 개발한 딥러닝 오픈소스 (tensorflow 기반)학습할 사진을 넣은 폴더별로 라벨링을 한 후 데이터 파일을 만든다.
소스코드가 너무 길다... python으로 만들어짐
근데 생각보다 정확도가 떨어짐...
아마 데이터셋이 많이 부족해서 나타나는 것 같은데 결국 openface로 모델 변경
openface -
opencv기반으로 만들어진 얼굴인식 + 러닝리눅스기반에서만 사용 가능해서 Docker 설치 후 리눅스 환경을으로 만듦 (openface 이미지가있음)
docker로 진행했기 때문에 코드를 보기가 힘들다...
코드는 python으로 되어있음
1달동안 인공지능 CCTV 프로젝트를 진행했다.
파이썬은 해본적이없어서 처음 환경세팅 하는것부터 엄청 오래걸림.
먼저 파이썬 설치하고 opencv를 설치함
그리고 학습을 위해 tensorflow를 설치하려고 하니까 anaconda 환경이 필요하다함
그래서서 anaconda를 깔고 tensorflow 라이브러리를 사용
tensorflow 라이브러리로 만든 inception 모델 사용
inception 모델이 정확도가 많이 떨어짐 (능력 부족으로 코드는 건들지 못함)
openface로 모델 변경 -> 정확도가 올라감