파이썬 쓰레드 혹은 딥러닝 관련 버그 해결하고 싶습니다.

   조회 2770   추천 0    

안녕하세요? 제가 지금 버그를 고치고 있는데 어떤 버그인지 말씀드리기 앞서 간단하게 현재 상황을 설명하겠습니다.


저는 딥러닝으로 화면내에 특정 물체가 있는지 감지하고, 특정 물체가 있으면 저에게 노티를 주는 작업을 하고 있습니다. 노트북 몇대로 하고 있는데 노트북은 그래픽 성능이 부족해서 3초 주기로 화면을 캡쳐해서 그 이미지를 중앙의 데탑 한대로 보내고, 데탑에서 물체 감지를 한 후 결과값만 노트북으로 보내고 있습니다.


노트북은 여러대이고 데탑은 한대이다 보니 데탑에서 쓰레드를 생성하고 쓰레드 하나 당 노트북 하나를 담당하게 해두었는데요, 물체를 인식할 경우 정확도 0.9를 넘으면 인식한 것으로 치고 있습니다. 대게의 경우 0.9999~0.95 사이에서 인식이 되고 있고, 당연하지만 1을 넘을 수 없는데요


가끔 버그로 4.7 15.5 이런 식의 정확도가 나옵니다. 그럴 땐 당연하지만 제가 눈으로 확인을 하게 되는데 해당 물체는 화면에 없고 그저 버그입니다. 이 버그는 한대의 노트북만 데탑에 연결되었을 때는 나타나지 않고, 두대 이상일 때, 댓수가 많아질 수록 더 자주 일어납니다. 또, 어느 한 노트북에서 해당 물체가 나타났을때 다른 노트북들에서도 그 물체가 있는 것처럼 처리되는 경우도 잦습니다.


이러한 증상만 놓고 보면 마땅히 여러 쓰레드들 간에 변수값이나 메모리 공간을 같이 쓰는 종류의 버그인거 같아서 혹시 변수 공유하는게 있는지 근 며칠간 철저히 검증했습니다만 그런건 없었습니다. 딥러닝 관련 버그인지, 쓰레드 버그인지 모르겠고 원인도 모르겠습니다.


저보다 파이썬 잘 하는 분들의 도움을 받고 싶어서 크몽, 오투잡 등등에 검색해서 몇몇 제작자들에게 연락해봤지만 하나같이 자기는 할 수 없다고 하더군요. 일단 같은 질문을 2cpu 딥러닝 게시판에 딥러닝 관련으로 쓸거긴 한데..


아무리 매달려도 저 혼자서는 해결할 수 없는 버그일꺼 같아서 가급적 비용을 지불하고 제대로 된 개발자에게 버그 수정을 받고 싶은데요 오투잡과 크몽 외에 다른 루트 뭐 없겠습니까? stackoverflow에는 여러차례 질문을 수정해가며 올려봤지만.. 단 한번도 답변을 받지 못했습니다.

짧은글 일수록 신중하게.
pilsuni 2020-12
학습 불량인듯 하네요... ROI 찍어서 확인해 보시면 확인이 될듯 합니다.
파이썬은 무궁무진한 신세계인것 밖에 모르지만, 추측하건데 값이 이상하게 나올때 ROI크기가 다를것으로 추정합니다.
     
확실히 말씀해주신대로, 이 버그가 나타날 때는 ROI가 눈에 띄게 비정상적이긴 합니다.
다만 제가 학습 문제가 아니고, 쓰레드나 서버 쪽 문제일거라고 생각한 이유는 1. 한번 버그가 나타나면 접속한 모든 쓰레드에서 동시에 버그가 나타나는 경우가 자주 있고 2. 어느 한 쓰레드에서 실제로 물체가 인식되었을 때 다른 쓰레드들에도 버그가 나타나는 등
쓰레드간의 연관성이 보이기 때문이었습니다.

지금 학습이 잘못되었다고 하셨는데.. 단순히 데이터셋이 부족한 문제라면야 더 모아서 학습시키면 되겠습니다만 학습 불량이라는 말씀은 아마 학습 시키는 과정 자체에 뭔가 셋팅이나, 설정값 등등에 문제가 있다는 말씀이실 것으로 생각됩니다. 만약 그렇다면.. 저는 지금까지 구글링, 유튜브 영상 등으로 배워왔는데 뭐가 문제인지 어디서부터 어떻게 검색해야 할지 감이 잘 안 옵니다. 학습은 파이썬과 무관하게 구글 코랩에서 리눅스 명령어로 해주고 있는데

제 학습 과정을 한번 개인적으로 검토해주시거나,아니면 이 학습 불량 문제를 해결하기 위한 방법을 조언해주시면 더 감사하겠습니다.
          
pilsuni 2020-12
전 darknet으로만 ObjectDetection을 해봐서,,, 파이썬은 알지 못합니다.
위에서 적은대로 신세계라는것 밖에요... 많이 책도 사고,,, 책 하나에서 하나의 배움이라도 건지기를 바라면서 배워야 하는데,
귀챠니즘이 승리중이라, 제가 미숙하여 도움이 되지 못할듯 합니다.
감사합니다.
          
pilsuni 2020-12
아,,,, 최근에 파이썬으로 작업도중, 튕긴적이 있습니다. (메모리 부족 사유로... - 자동으로 메모리가 환원 되기는 하는듯 하지만, 특정포인트에서 환원되는 코드가 콜이 되지 못하고, 계속해서 증가하는 현상 일지도... 하는 추측을 해 봅니다.)

어느 시점부터 계속해서 발생하는 이슈라면 메모리 환원관련 포인트를 찾아보는게 좋을듯 합니다.
               
참고하겠습니다 감사합니다.
     
pilsuni님 혹시 ROI크기가 다를거를 어떻게 아셨나요?

문득 pilsuni님이 ROI크기가 다를걸 아셨다는게 왠지 이 버그 원인이 뭔지 알고 계시기 때문일거라고 생각이 들었습니다

원인이 뭔지 알고 계실거 같은데 힌트좀 부탁드립니다 조사해서 고치고 싶습니다
          
pilsuni 2020-12
몇 년전에 darknet을 접하기 전에 여러 소스를 실행해 보면서 저도 비슷한 케이스가 나왔던 것으로 추측합니다.(기억은 믿을게 못되서ㅡㅡ;;;)
1 이상의 값이 나오는 경우가 하나의 ROI에 여러개의 개체가 발견되었을때 나오는 값으로 알고 있습니다. 사람의 경우는 1 이상이 없다고 생각하겠지만, 기계의 경우는 여러개가 나오면 다 합산할 수 있으니까요...
(이런 이유로 학습이 제대로 안된 케이스 일지도 모르겠다는 글을 적었습니다.)
하지만, 특정 시점에서 증상이 나온다는 글을 보고(난독이라,,, 댓글에서 확인함 ㅡㅡ;;) 학습보다는 메모리 관리라고 생각을 하게 되었습니다.

도움이 되어 드리지 못해 죄송합니다.
               
감사합니다 ㅎㅎ
무아 2020-12
데탑의 AI 하는 쪽에다가 실제로 AI를 돌리지말고 약간의 딜레이를 준 후 (1장의 이미지를 AI가 처리되는 시간 정도) 인식 정확도를 고정 값으로 보내게 해보세요.
각 노트북 마다 다른 값이 되게 고정된 값을 보내는 거죠.
예를 들어 1번 노트북에서 쿼리 이미지가 날아오면 약간의 딜레이 후 0.1
2번 노트북은 0.2
이런식으로..
이렇게 프로그래밍 해서 여러대의 노트북이 붙었을 때 정확도 값이 꼬이지 않고 받아진다면 문제는 딥러닝 쪽에서 병렬처리 하는 쓰레드쪽 문제가 아닐까요?
     
좋은 방법이네요! 바로 해보고 결과 나오는대로 또 말씀드리겠습니다 ㅎㅎ
     
지금 말씀해주신 그대로 한건 아니고.. 서버에서 값을 보내기 전에 어떤 값을 보내는지 콘솔 창으로 출력해서 확인해보니,

이 버그가 일어날 땐, 모든 쓰레드에 (이미지에 목표 오브젝트가 있건, 없건 상관 없이) confidence가 비정상적으로 확 튀는걸 확인했습니다.

그러니까 노트북에서 값 받는건 아무 이상 없고 서버 쪽에서 confidence가 실제로 이상이 있었던 셈이죠

아래 적어주신 내용은 실제로 해보려면 시간이 좀 걸릴껀데.. 그렇게 해서 버그를 잡은 들, 지금 쓰레드를 사용하는건 병렬적으로 처리하기 위함인데
메인 프로세스에서 신호가 오는대로 한건 한건 처리하는것과 다를 바 없어질꺼 같아서 좀 답답하네요..
무아 2020-12
그리고 AI 쪽은 별도로 동시에 여러 입력 영상을 각각 병렬 처리하게 되어있지 않다면 작업 큐를 만들어서 동시 처리가 들어오더라도 하나씩 처리해서 각각의 결과를 리턴하게 해 줄 필요가 있어 보입니다.
1보다 큰 정확도가 나온다는 건 아마도 AI 쪽 프로그램에서 오동작 하는 것 같습니다.
     
댓글 감사합니다! 결국 해결했습니다 !


QnA
제목Page 4989/5718
2014-05   5208763   정은준1
2015-12   1740457   백메가
2020-06   2771   신은왜
2021-09   2771   dotlee
2020-12   2771   의롭게살리라
2020-04   2771   RIGIDBODY
2024-05   2771   초보자에용
2019-12   2771   이지포토
2021-12   2770   민사장
2019-03   2770   굴다리교
2020-02   2770   hater
2019-12   2770   나파이강승훈
2020-05   2770   흠냐
2020-11   2770   fiento
2021-04   2770   오즈의맙소…
2020-11   2770   yummy
2019-01   2769   이지포토
2020-06   2769   김효수
2020-03   2769   HOPC
2019-01   2769   행복하세
2023-03   2769   눈부신아침
2021-10   2769   Sikieiki