Python + OpenCV로 미소 실시간 감지
                                            
                                                
                                                
                                                
                                                
                                                
                                                 7816 단어  파이썬OpenCVpy2appPySimpleGUI
                    
배경
온라인 해커슨에 참가했을 때 작성한 앱이 입상했기 때문에 기념에 올려두려고 생각했다.
건의 해커슨에서는, 「어려운 기술에 도전하고 있는지, 새로운 기술에 도전하고 있는지」가 평가 기준의 하나였기 때문에, 이번은 OpenCV와 PySimpleGUI에 도전해 보았다. 프로그램의 전체 용도는 여기 .
 개요
실시간으로 미소를 감지하는 앱을 만들었습니다.
이미지는 이런 느낌 ↓.
 
・미소 때만 붉은 직사각형이 표시되어, 그 직사각형의 종횡비를 미소의 점수로 하고 있다.
・점수에 정수를 곱한 것을 우측에 리얼타임 묘화 하고 있다.
· py2app에서 mac 용 독립 실행 형 응용 프로그램입니다.
 코드
OpenCV와 PySimpleGUI에서는 실시간으로 처리하고 싶기 때문에 기본적으로
sample.pywhile True
    #何かしらの処理
  if a:  #何かしらの条件
      break
라는 형태가 된다.
실제 코드를 발췌하면
SmileDetector.pydef main():
  #省略
  while True:
    stage += 1
    event, values = win.read(timeout=1)
    if event in (None, "Quit"):
        break
    ret, frame = camera.read()
    image = frame[90:990, 0:-1]
    image_ = cv2.resize(image, (750,400), cv2.INTER_LANCZOS4)
    # -----------------  Process images here. ---------------- #
    gray = cv2.cvtColor(image_, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, scaleFactor=1.3, minNeighbors=5)
    smile_value = 0
    for (x, y, w, h) in faces:
        cv2.rectangle(image_, (x, y), (x + w, y + h), (255, 0, 0), 2)
        face = image_[y:y + h, x:x + w]
        face_gray = gray[y:y + h, x:x + w]
        smiles = smile_cascade.detectMultiScale(face_gray, 1.8, 20)
        for (sx, sy, sw, sh) in smiles:
            cv2.rectangle(face, (sx, sy), ((sx + sw), (sy + sh)), (0, 0, 255), 2)
           #省略
    # ----------------- End of Image Processing ----------------- #  
이런 느낌.
while True 로 항상 화면의 정보를 받아들이면서, 그것에 대해서 화상 처리를 더해 간다.
OpenCV 단체로 실시간 화상 처리를 하는 경우도, PySimpleGUI 단체로 앱을 만드는 경우의 양자 모두,
while True: 를 사용하기 때문에, 그 부분을 하나로 정리하는 것으로 구현할 수 있다.
 끝에
입상할 수 있어 5천엔 이내의 기술서를 받게 되었다. 기뻤다.
이 앱을 온라인 면접의 백으로 움직여 놓고, 웃을 수 있는지를 체크해 면접을 극복하고 싶다.
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(Python + OpenCV로 미소 실시간 감지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://qiita.com/S8s8Max/items/3fc599d32ed3bd91fbe9
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
실시간으로 미소를 감지하는 앱을 만들었습니다.
이미지는 이런 느낌 ↓.

・미소 때만 붉은 직사각형이 표시되어, 그 직사각형의 종횡비를 미소의 점수로 하고 있다.
・점수에 정수를 곱한 것을 우측에 리얼타임 묘화 하고 있다.
· py2app에서 mac 용 독립 실행 형 응용 프로그램입니다.
코드
OpenCV와 PySimpleGUI에서는 실시간으로 처리하고 싶기 때문에 기본적으로
sample.pywhile True
    #何かしらの処理
  if a:  #何かしらの条件
      break
라는 형태가 된다.
실제 코드를 발췌하면
SmileDetector.pydef main():
  #省略
  while True:
    stage += 1
    event, values = win.read(timeout=1)
    if event in (None, "Quit"):
        break
    ret, frame = camera.read()
    image = frame[90:990, 0:-1]
    image_ = cv2.resize(image, (750,400), cv2.INTER_LANCZOS4)
    # -----------------  Process images here. ---------------- #
    gray = cv2.cvtColor(image_, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, scaleFactor=1.3, minNeighbors=5)
    smile_value = 0
    for (x, y, w, h) in faces:
        cv2.rectangle(image_, (x, y), (x + w, y + h), (255, 0, 0), 2)
        face = image_[y:y + h, x:x + w]
        face_gray = gray[y:y + h, x:x + w]
        smiles = smile_cascade.detectMultiScale(face_gray, 1.8, 20)
        for (sx, sy, sw, sh) in smiles:
            cv2.rectangle(face, (sx, sy), ((sx + sw), (sy + sh)), (0, 0, 255), 2)
           #省略
    # ----------------- End of Image Processing ----------------- #  
이런 느낌.
while True 로 항상 화면의 정보를 받아들이면서, 그것에 대해서 화상 처리를 더해 간다.
OpenCV 단체로 실시간 화상 처리를 하는 경우도, PySimpleGUI 단체로 앱을 만드는 경우의 양자 모두,
while True: 를 사용하기 때문에, 그 부분을 하나로 정리하는 것으로 구현할 수 있다.
 끝에
입상할 수 있어 5천엔 이내의 기술서를 받게 되었다. 기뻤다.
이 앱을 온라인 면접의 백으로 움직여 놓고, 웃을 수 있는지를 체크해 면접을 극복하고 싶다.
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(Python + OpenCV로 미소 실시간 감지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://qiita.com/S8s8Max/items/3fc599d32ed3bd91fbe9
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
while True
    #何かしらの処理
  if a:  #何かしらの条件
      break
def main():
  #省略
  while True:
    stage += 1
    event, values = win.read(timeout=1)
    if event in (None, "Quit"):
        break
    ret, frame = camera.read()
    image = frame[90:990, 0:-1]
    image_ = cv2.resize(image, (750,400), cv2.INTER_LANCZOS4)
    # -----------------  Process images here. ---------------- #
    gray = cv2.cvtColor(image_, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, scaleFactor=1.3, minNeighbors=5)
    smile_value = 0
    for (x, y, w, h) in faces:
        cv2.rectangle(image_, (x, y), (x + w, y + h), (255, 0, 0), 2)
        face = image_[y:y + h, x:x + w]
        face_gray = gray[y:y + h, x:x + w]
        smiles = smile_cascade.detectMultiScale(face_gray, 1.8, 20)
        for (sx, sy, sw, sh) in smiles:
            cv2.rectangle(face, (sx, sy), ((sx + sw), (sy + sh)), (0, 0, 255), 2)
           #省略
    # ----------------- End of Image Processing ----------------- #  
입상할 수 있어 5천엔 이내의 기술서를 받게 되었다. 기뻤다.
이 앱을 온라인 면접의 백으로 움직여 놓고, 웃을 수 있는지를 체크해 면접을 극복하고 싶다.
Reference
이 문제에 관하여(Python + OpenCV로 미소 실시간 감지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/S8s8Max/items/3fc599d32ed3bd91fbe9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)