* 강의 소개 링크(소스코드 및 자체 제작 이미지 포함) 입니다. ^^ : nadocoding.tistory.com/91 * 아래는 수업에 필요한 이미지, 동영상 자료 링크입니다. 고양이 이미지 : pixabay.com/images/id-2083492/ 크기 : 640 x 390 파일명 : img.jpg 고양이 동영상 : www.pexels.com/video/7515833/ 크기 : SD (360 x 640) 파일명 : video.mp4 신문 이미지 : pixabay.com/images/id-350376/ 크기 : 1280 x 853 파일명 : newspaper.jpg 카드 이미지 1 : pixabay.com/images/id-682332/ 크기 : 1280 x 1019 파일명 : poker.jpg 책 이미지 : www.pexels.com/ko-kr/photo/1105564/ 크기 : Small (640 x 960) 파일명 : book.jpg ※ 참고 : 강의에서 사용한 책 이미지가 더 이상 제공되지 않아서 최대한 유사한 대체 이미지 링크로 변경하였습니다. 눈사람 이미지 : pixabay.com/images/id-1300089/ 크기 : 1280 x 904 파일명 : snowman.png 카드 이미지 2 : pixabay.com/images/id-161404/ 크기 : 640 x 408 파일명 : card.png 퀴즈용 동영상 : www.pexels.com/video/3121459/ 크기 : HD (1280 x 720) 파일명 : city.mp4 프로젝트용 동영상 : www.pexels.com/video/3256542/ 크기 : Full HD (1920 x 1080) 파일명 : face_video.mp4 프로젝트용 캐릭터 이미지 : www.freepik.com/free-vector/cute-animal-masks-video-chat-application-effect-filters-set_6380101.htm 파일명 : right_eye.png (100 x 100), left_eye.png (100 x 100), nose.png (300 x 100) 무료 이미지 편집 도구 : pixlr.com/kr/ (Pixlr E -Advanced Editor)
설명이 정말 깔끔하고 알아듣기 편해서 좋습니다. 좋은 강의 감사합니다~~. 한 가지 질문 드려도 될까요~~ 제가 잘 따라하다가 얼굴인식 프로젝트에서 캐릭터 이미지 덮어 씌울 때 왜 배경이 투명해지지 않을까요ㅠㅠ 이미지 편집은 제대로 된 것 같은데.. 채널도 4로 나오거든요. 혹시 다른 이유가 있을까요?? 선생님의 도움이 필요합니다 ㅜ
영상에서 나온 mediapipe 의 코드를 가져올수 있는 사이트는 현재 존재하지 않기 때문에 댓글로 남겨둡니다 python API 가 없어졌고 사이트 UI가 완전히 뒤엎어져서 영상과는 완전 다른사이트가 되어 있네요 import cv2 import mediapipe as mp mp_face_detection = mp.solutions.face_detection mp_drawing = mp.solutions.drawing_utils # 이미지 파일의 경우 이것을 사용하세요: IMAGE_FILES = [] with mp_face_detection.FaceDetection( model_selection=1, min_detection_confidence=0.5) as face_detection: for idx, file in enumerate(IMAGE_FILES): image = cv2.imread(file) # 작업 전에 BGR 이미지를 RGB로 변환합니다. results = face_detection.process(cv2.cvtColor(image, cv2.COLOR_BGR2RGB)) # 이미지를 출력하고 그 위에 얼굴 박스를 그립니다. if not results.detections: continue annotated_image = image.copy() for detection in results.detections: print('Nose tip:') print(mp_face_detection.get_key_point( detection, mp_face_detection.FaceKeyPoint.NOSE_TIP)) mp_drawing.draw_detection(annotated_image, detection) cv2.imwrite('/tmp/annotated_image' + str(idx) + '.png', annotated_image) # 웹캠, 영상 파일의 경우 이것을 사용하세요.: cap = cv2.VideoCapture(0) with mp_face_detection.FaceDetection( model_selection=0, min_detection_confidence=0.5) as face_detection: while cap.isOpened(): success, image = cap.read() if not success: print("웹캠을 찾을 수 없습니다.") # 비디오 파일의 경우 'continue'를 사용하시고, 웹캠에 경우에는 'break'를 사용하세요. continue # 보기 편하기 위해 이미지를 좌우를 반전하고, BGR 이미지를 RGB로 변환합니다. image = cv2.cvtColor(cv2.flip(image, 1), cv2.COLOR_BGR2RGB) # 성능을 향상시키려면 이미지를 작성 여부를 False으로 설정하세요. image.flags.writeable = False results = face_detection.process(image) # 영상에 얼굴 감지 주석 그리기 기본값 : True. image.flags.writeable = True image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR) if results.detections: for detection in results.detections: mp_drawing.draw_detection(image, detection) cv2.imshow('MediaPipe Face Detection', image) if cv2.waitKey(5) & 0xFF == 27: break cap.release()
이분 진짠 천재 or 교육자인듯 코틀린 공부하다가 용어막혀서 파이썬 공부하다가 이분 강의 봤는데 그냥 친절하게 설명해줘서 어떤언어 배우든 필수 동영상일듯 변수 함수 클래스 강의는 돈주고 봐도 될듯한 강의고 진짜 코틀린 접었다가 나도코딩님 덕분에 함수 인수 클래스 변수 확실히 깨닫고 지금 다시 코틀린 공부중 젯브레인도 님 한테 교육방식 배워야 될듯 진짜 ebs에서 이런 강의를 해야되는데
와 정말 기초부터 응용까지 모든 영역을 커버하는 동영상이네요 굉장합니다. 영상 보시는 분들께서 한가지 알아두시면 좋은 것은 각 영역 하나하나가 기업의 팀 단위입니다. 이미지 전처리 하는 팀, 개체 인식하는 팀, 코드 최적화 하는 팀, 서비스 운영하는 팀 등등 이 하나의 프로덕이 나오기까지 굉장한 노력과 많은 시간이 투자되어 높은 품질의 제품이 시장에 나오게 됩니다
저만 그런 거일 수 있겠지만, 혹시 저와 같은 어려움을 겪고 계신 분이 있으시면 아래 내용을 참고해주시면 좋을 것 같아요!ㅎㅎ [오류 코드 내용] error: OpenCV(4.6.0) D:\a\opencv-python\opencv-python\opencv\modules\highgui\src\window.cpp:967: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow' 강의 중에 이미지 파일 이름을 저장할때 발생했던 문제인데 1시간 정도 문제를 확인해보니 img.jpg 로 파일 이름을 저장하면서 실제 이미지 파일은 img.jpg.jpg 로 저장됐습니다. 아마 각 사용자 기본 설정 내용에 따라 문제가 발생하는 것 같네요. 만약 저와 같은 문제가 발생하신 분들은 이미지 이름을 저장할때 img 까지만 쳐주시면 됩니다. 파일 형식은 jpg가 맞는지 한 번 확인해주시구요. 그럼 이만입니다.
열정과 노력이 놀랍네요.. 활용편 강의까지 모두 합치면 꽤 긴 시간일텐데 공부하셨다니 정말 정말 대단하십니다. 도움되셨다니 기쁘구요. 언급해주신 주제들도 물론 생각이 있습니다. 하지만 지금은 사전에 계획된 것들이 먼저 기다리고 있어서, 조금 나중에 다뤄볼 수 있을 것 같네요, 이해 부탁드립니다 ^^
1편 보고 이제 원하는건 어느정도 만들수 있는 수준이 되었습니다 너무 감사하게 생각 하고 있습니다. 혼자서 opencv 를 통해서 이미지 서치를 만들어 게임 매크로도 만들어 보았습니다. 파이썬이 없었다면 이런걸 손으로 했다니 생각하니 아찔합니다 ㅠ 덕분에 컴퓨터라는 일꾼이 저에게 생겼습니다 항상 감사합니다. 이번편도 보고 좀 더 숙련된 일꾼으로 키우겠습니다 감사합니다
안녕하세요.선생님 2개월전 opencv공부한다고 댓 작성하고, 오랜만에 다시 글 올립니다. 여느분께서 매크로를 만들었다고 하셔셔, 저도 공부를 해가며, 드디어, win32API를 이용하여 특정 창만을 20fps정도로 스크린 캡쳐를 한뒤, 이미지를 opencv에서 형변환을 한뒤, 화면에 출력까지 성공을 하였습니다. 문득 나도코닝 선생님에게 너무 고마웠습니다. 2년전에 파이썬 문법 입문으로 시작해서 여기까지 온 듯합니다. 물론 아직도 완벽하게 다 이해를 하며 진행을 하는 것은 아니지만, 유투브 형님들 혹은 stackoverflow형님들 도움이 많이 필요하지만, 다시한번 감사하다는 말씀을 드립니다. 잠깐 옆길로 새긴했지만, 얼굴인식까지 마무리 하도록 하겠습니다.^^
1일차 58:13 2일차 1:24:25 3일차 2:06:12 4일차 3:01:50 5일차 3:32:22 6일차 4:27:42 완료 장장 1개월만에 openCV를 완강했습니다 ㅠ 마지막 프로젝트는 진짜 활용도가 높아보이는데 4채널을 3채널로 바꾸는 공부는 조금 더 해야겠지만 열심히 따라 해봤습니다 너무 재밌게 들었습니다!! 감사합니다 얼굴의 회전 각도나 가깝고 멂에 대한것은 mp_face_detection에 있겠죠? 응용해서 저렴한버젼의 SNOW 어플을 만들수도 있을 거 같은데 다만, 영상의 프레임마다 이미지를 불러오는 것 때문에 떨림이 심한 것 같은데 이 부분의 처리를 모르겠네요 ㅠ 아무튼 재밌게 들었습니다 감사합니다!!
인공지능의 한 분야인 컴퓨터 비전영역을 공부하려고 합니다. cv에서도 여러 영역이있다고 하는데, open cv를 이용해 공부하는 것이 기초가 되는 공부인가요? 아니면 cv영역에 따라 공부해야하는 부분도 달라지나요? 또는 cv영역을 공부하려면 어떤 순서로 접근해야 하는지 알려 주실수 있나요?
ㅋㅋㅋ 화들짝?!! 소영님 벌써 공부 시작하셨군요, 이렇게 시간 내어 봐주시는데 꼭 도움되었으면 합니다 ㅎㅎ 영상이 길어서 편집하는 과정에서 어색한 부분을 미처 고치지 못한 곳도 있을 수 있는데, 만약 학습에 지장을 줄 정도로 이상한 부분이 있다면 알려주시면 보충 설명을 드리도록 하겠습니다. 이번 강의도 완주 응원하겠습니다 ^^
좋은 강의가 반갑게 올라왔군요. 이자리를 빌어 나도코딩님께 감사의 말씀을 전합니다. 코로나 가 한창 활개를 칠 무렵 집에서 우연히 접하게된 나도코딩님의 영상을 보고 그동안 미루어 왔던 영역에 도전하게 되었습니다. 집에서 보내는 시간이 많으니 영상을 보면서 공부할 시간도 많아지더군요. 결국...... 잠자고 있던 프로그래머 본능이 살아나면서 자신감도 생기고..... 비록 10여년의 경력달절이 있었지만 극복하고 미국에서 프로그램 관련 일을 얻어 이민도 가고 새로운 인생을 시작 할 수 있게 되었습니다. 나도코딩님의 선한영향력이 저 뿐 아니라 더 많은 분들에게도 희망의 메세지가 전달되기를 바랍니다^^ 아...IoT 프로젝트는 조금 아이디어를 보태자면... GPS신호를 받다 특정지역을 자동으로 주행하는 것을 추가하면 어떨까 합니다. 미국에서는 마당 잔디깎는 것이 큰일인데 이 기술을 구현한다면 많은 응용이 가능할 것 같습니다. ^^
와.. 인생에 큰 변화를 이루셨네요 ^^ 대단하시고, 또 축하드립니다. 그 과정에 작게나마 함께 할 수 있어서 감사하네요. 공유해주셔서 너무 감사드려요 ㅎㅎ 사물인터넷 관련 아이디어도 감사드립니다. 아직 세부적으로 정해진 건 없지만 커리큘럼 구상 시 함께 고민해볼게요! ^^
항상 강의영상 감사합니다. OpenCV 사용시에 지정그림을 띄울때, 백그라운드가 없는 그림도 사용이 가능한가요?? 예를들어 특정아이콘(ex 위치아이콘, 메시지 아이콘 등)과 같이 배경은 없고 아이콘만 있는경우 imshow를 통해 사진을 불러와 띄워보면 그림이 깨지더라고요.. 특정 곡선의 그림을 불러와 그 곡선의 형태가 사진안에 있는지 없는지를 찾는 프로그램을 만들려고 하는데, 백그라운도가 없는 사진을 불러들일경우 그림이 깨져 어떻게 해야할지를 모르겠네요..
안녕하세요! 저희가 지금 대학 과제중으로 세탁법 비교를 해야하는데, 다음 영상에서 나온 것처럼 이미지에서 색 변환 시켜 윤곽선을 추출해서 프로그램에 저장되어 있는 세탁로고들과 비교를 해보려고 하는데 가능할까요????????? 기존엔 히토그래픽을 사용했는데, 실패해서 아예 로고의 윤곽을 이용하여 이미지들 간에 비교를 해보려고 합니다!
일단 좋은 강의 정말 감사합니다 ~ 질문드릴게 하나 있는데요 마지막 프로젝트를 진행할 때, mp_face_detection가 mp.solutions.face_detection 모듈을 의미하는 변수인데 제가 직접 mediapipe 페이지에서 찾아보면 따로 모듈이 정리되어있지 않아서 이건 그냥 Solutions -> Face Detection -> API에서만 확인 가능한건지 궁금합니다. 갑자기 FaceDetection이나 detections가 어떻게 나오는건가요? 모듈이나 클래스 또는 함수같은데 이런 모듈들이 정리되어 있는 곳이 있나요? 이런건 어디서 다 찾아볼 수 있나요? oencv 라이브러리처럼 따로 정리되어 있는 곳은 없는건가요?
저는 mediapipe 공식 홈페이지에서 제공해주는 예제 소스코드를 그대로 복붙한 다음에 필요에 맞게 수정을 해나갔습니다. 링크 : google.github.io/mediapipe/solutions/face_detection.html 아쉽게도 원하시는 형태의 opencv 와 같은 문서는 제공하지 않는 것 같네요. 하지만 홈페이지를 잘 따라가다보면 군데 군데 설명이 이어지고 있어서 크게 어려움 없이 개발은 할 수 있어 보입니다. 또는 mediapipe 사용 예제 코드를 구글링 해보시면 다른 누군가가 진행한 프로젝트를 참고해볼 수도 있겠네요. 감사합니다. ^^
카메라 출력에서 ret, frame = video_capture.read() cv2.imshow('streaming video', frame) out.write(frame) 카메라 영상을 저장을 할 수 있쟌아요. 궁금한점은 카메라 실행 영상이 whlie 돌때, 녹화 일시정지를 't' 키로, 녹화 시작을 's' 키로 영상 꺼지지 않고 띄운 상태에서 컨트롤이 가능할까요? 아니면 동영상 스트림중 일시정지 하는 방법이라도 알려주시면 감사하겠습니다. 초보라서 잘몰라서요. 제발 답변 주시면 정말 감사하겠습니다.
녹화를 할 지 말 지를 결정하는 변수를 하나 두고 t 버튼을 누르면 일시정지 (변수 값 False), s 버튼을 누르면 녹화 (변수 값 True ) 하면 되겠네요 ^^ 예제 코드 링크 드리니 참고해주세요! stackoverflow.com/questions/41105345/how-can-i-make-video-to-pause-continue-while-recording
작년에 활용편 4(업무자동화)까지 나왔을 때 정주행하면서 파이썬을 배웠던 학생(백-수)입니다! 머신러닝과 딥러닝을 따로 배우고 캐글에서도 기초적인 문제들로 공부했지만 이걸로 포트폴리오를 어떻게 만들지 고민하다, 영상 처리에도 관심이 생겨 OpenCV를 배워야겠다는 생각을 했는데 마침 또 이 강의를 마주하게 되었네요..! 이번에도 감사히 잘 배워가겠습니다.
안녕하세요! 양질의 영상 덕에 항상 감사드리면서 공부하고있습니다! 영상을 보면서 드는 궁금증이 있어서 질문 드립니다. 현재 미니프로젝트1 부분을 시청중입니다! 마우스 이벤트 등록 절차 중 이미지를 클릭하면 x, y좌표를 얻을 수 있는데 이 이벤트가, cv2 라이브러리의 기능인 것인지 그게 아니라면 어떠한 메커니즘으로 좌표를 얻는 것 인지가 궁금해서 질문드립니다.
cv2 라이브러리에서 제공을 해주는 것입니다 ^^ 아래 링크 보시면 setMouseCallback() 함수에 대한 내용이 있구요. 그 중에 MouseCallback 부분 클릭해보시면 Parameter 로 어떤 값이 정의되어 있는지도 확인하실 수 있어요. 우리는 그에 맞춰서 이벤트 핸들러 함수를 제작한 것이랍니다. 링크 : docs.opencv.org/4.x/d7/dfc/group__highgui.html#ga89e7806b0a616f6f1d502bd8c183ad3e
강의 듣는 내내 흥미롭게 배웠습니다 감사합니다 ㅎㅎ 마지막 이미지 편집 후 투명도 적용해서 코드 진행하는 부분에서 에러가 뜨더라고요 IndexError: index 3 is out of bounds for axis 2 with size 3 코드는 똑같지만 이제 사진에서 편집하는 부분에서 오류가 난 거 같은데 혹시 어떻게 해결해야 할까요? 감사합니다
나도코딩님 좋은 강의 정말 감사합니다. 도형 그리기 관련해서 좀 다른 주제의 질문이 있습니다. ^^; 1. 임의의 다각형 여러 개를 랜덤하게 생성하고 2. 관심 영역(bounding box) 내에 있는 3. 두 다각형이 떨어져 있다면, 최소 거리 or 4. 두 다각형이 만난다면, 오버랩 면적을 구하고 싶은데요.. 혹시 참고할 만한 자료를 추천해주시면 감사하겠습니다. ^^
답변이 늦어 정말 죄송합니다 ㅠㅠ 최소 거리는 다음 링크를 stackoverflow.com/questions/64689560/measuring-the-distance-of-a-point-to-a-mask-in-opencv-python 오버랩 면적은 다음 링크를 참고해보시겠어요? stackoverflow.com/questions/17810681/intersection-area-of-2-polygons-in-opencv C++ 기준 코드이지만 아이디어는 얻을 수 있을거라 생각합니다. 또는 아래 링크도 참고해볼만 하겠네요! www.pyimagesearch.com/2016/04/04/measuring-distance-between-objects-in-an-image-with-opencv/
bounding box 는 for 문 내에서 bounding_box = detection.location_data.relative_bounding_box print(bounding_box.xmin, bounding_box.ymin, bounding_box.width, bounding_box.height) 와 같이 하시면 값을 확인하실 수 있습니다. 오버레이를 했을 때 정확한 에러 코드는 모르겠으나 어쩌면 bounding_box 영역이 화면을 벗어나는 경우 overlay 동작에 문제가 발생할 수도 있을 것 같네요. x, y, width, height 를 이용해서 화면을 벗어나는 경우 overlay 를 하지 않거나, 또는 함수 내에서 화면 중 유효한 범위만 계산해서 overlay 를 하도록 개선이 필요해 보입니다. ^^