ChatGPT 와 함께 Vision 인식 솔루션 개발 일기 2


ChatGPT 와 함께 Vision 인식 솔루션 개발 일기 2


개발 일기 1에 이어서

개발 일기 2를 시작합니다.
작성자 소개:
Roblox 크리에이텀 겸 교육자 
2022 ~ 2023년 Roblox Connect 한국 연사로발표 영상 아래 
https://www.youtube.com/live/UTv7BcAQSQs?feature=share
그래서 저는 파이썬 + 인공지능 사용이  익숙하지 않습니다.
물론 로블록스 Luau 코딩 경험은 있습니다.
그래서  ChatGPT의 도움을 받아 미니 솔루션 개발을 해보는 경험을 시작하게 되었습니다.
비젼 고수님들이 보기엔 초보 수준이겠지만.^^ 많은 조언 바랍니다.

 

만들려는 솔루션 및 취지

- 거품 발생 후  마무리 단계를 인식하여 마무리 단계를 인식해서  10번이상 90% 일치율 이상이면 카운터해서 사운드 플레이해서 알려준다.
- 중소기업에서 저렴한 비용으로 사용하는 목적에 부합하는 기능만 빠르게 적용하기.
-  그리고 개발자 아닌 담당직원에 쉽게 how to 알려주기

개발 환경

- 아나콘다 설치 X
- VS + Python Python 3.11.4 + env 
- ChatGPT가 설치하라는데로 설치하면서 에러나면  서로 의견 주고 받음


개발진행

진행 할
미션1 : TM 사이트에서 학습한 모델로 판단 하는 방식 (일단 완료)
미션2 :  실시간 거품 비율 계산 하여 판단 하는 방식 (3차 일기에 진행 도모)

미션1의 진행 단계

step1. 촬영한 영상 데이터를 애프터이펙트로 이미지 추출 렌더링
          label은 init, process, ending 3개로 진행
          30분 촬영분이라 이미지 추출량이 어마 무시


step2. https://teachablemachine.withgoogle.com/train/image 에 넣어 학습시키고 모델 다운로드
init 라벨과 ending은 500장 정도 process 라벨은 6000장 정도 web으로 진행시키니 메모리 부족으로

대기 상태가 걸린다 차분이 기다려 본다...
다행이 잠시 응답이 된다... ㅠㅠ 
새컴으로 바꾸고 싶다. 학습 진행 이렇게 많은 사진넣고 web으로 진행하는것은 처음이다.
다행이 인식율이 나쁘지 않아  모델 다운로드  opencv savemodel로 받고 예제 코드 다운 받아 진행



from keras.models import load_model  # TensorFlow is required for Keras to work
import cv2  # Install opencv-python
import numpy as np

# Disable scientific notation for clarity
np.set_printoptions(suppress=True)

# Load the model
model = load_model("keras_Model.h5", compile=False)

# Load the labels
class_names = open("labels.txt", "r").readlines()

# CAMERA can be 0 or 1 based on default camera of your computer
camera = cv2.VideoCapture(0)

while True:
    # Grab the webcamera's image.
    ret, image = camera.read()

    # Resize the raw image into (224-height,224-width) pixels
    image = cv2.resize(image, (224, 224), interpolation=cv2.INTER_AREA)

    # Show the image in a window
    cv2.imshow("Webcam Image", image)

    # Make the image a numpy array and reshape it to the models input shape.
    image = np.asarray(image, dtype=np.float32).reshape(1, 224, 224, 3)

    # Normalize the image array
    image = (image / 127.5) - 1

    # Predicts the model
    prediction = model.predict(image)
    index = np.argmax(prediction)
    class_name = class_names[index]
    confidence_score = prediction[0][index]

    # Print prediction and confidence score
    print("Class:", class_name[2:], end="")
    print("Confidence Score:", str(np.round(confidence_score * 100))[:-2], "%")

    # Listen to the keyboard for presses.
    keyboard_input = cv2.waitKey(1)

    # 27 is the ASCII for the esc key on your keyboard.
    if keyboard_input == 27:
        break

camera.release()
cv2.destroyAllWindows()

문제는 위 예제코드가  내 컴에서 안된다 ㅜㅜ
개발 일기1는 여기서 멈추었지요

이때부터 ChatGPT와 다시 이야기를 시작했다.
저의 chatGPT 와 핑퐁 대화 링크는 너무 길어 공유합니다.

https://chat.openai.com/share/821502a5-9ee3-481e-a707-550646b4a988

결국
이틀전 밤까지 계속 대화를 해서

마지막 단계를  카운터해서 신나는 라틴음악을 플레이하는데 성공했네요. 
영상으로 담을 순 없었지만...


이제 
이런 학습 모델 없이 
그냥 실시간 모니터링으로 거품 비율을 인식해서 마지막 단계를 알려주는 솔루션을 만들고 싶네요.
고수님들에게는 쉬운일겠지만..

 

ChatGPT로 안해본일을 같이 해서 성공해보는 스토리로 봐주시면 감사하겠습니다
그럼 세번째  일기에는 또 미션2를 성공할지..

4
3개의 답글

👉 이 게시글도 읽어보세요

모집 중인 AI 스터디