반응형

다음 깃허브에 있는 욜로 YOLO V4를 실행하는 방법을 소개합니다. 

hunglc007 / tensorflow-yolov4-tflite  (  https://github.com/hunglc007/tensorflow-yolov4-tflite )

 

 

 


2020. 05. 03  

최초작성

 

2020. 08. 22 

다음과 같은 에러가 발생하여 확인해보니 다크넷(darknet)에서 배포하는 yolov4.weights를 그대로 사용하는 방식에서 Tensorflow에서 사용하는 포맷으로 바꾸어서 하는 방식으로 바뀌었네요. 

변경된 방식으로 포스트를 수정하였습니다.

 

"C:\Users\webnautes\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\saved_model\loader_impl.py", line 113, in parse_saved_model

    constants.SAVED_MODEL_FILENAME_PB))

OSError: SavedModel file does not exist at: ./data/yolov4.weights/{saved_model.pbtxt|saved_model.pb}


2020. 09. 26

webcam 영상을 사용하여 테스트

 

 

 

 

1. 글작성 시점에서는 Tensorflow 2.3.0rc0 설치를 권장하고 있습니다.

윈도우의 경우 명령 프롬프트, 리눅스의 경우 터미널에서 다음 명령을 사용하여 Tensorflow를 설치합니다. 

 

pip install tensorflow==2.3.0rc0

 

하위 버전이 설치된 경우 자동으로 제거하고 지정한 Tensorflow 2.3.0rc0 버전으로 설치됩니다. 

 

참고로 CUDA를 설치하면 실행속도가 많이 개선됩니다. 

노트북을 사용하는 경우 전원 어댑터를 연결해야 cuda가 제 성능으로 동작합니다. 

 


다음 포스트를 참고하여 CUDA 설치 후


Windows 10에 CUDA와 cuDNN, Tensorflow 설치하기

https://webnautes.tistory.com/1423 

 

Ubuntu 20.04에 CUDA Toolkit와 cuDNN, Tensorflow 설치하기

https://webnautes.tistory.com/1428 

 

 

Tensorflow GPU 버전을 설치하세요.

 

pip install tensorflow-gpu==2.3.0rc0

 

 

 

2. 이미 설치된 Tensorflow의 버전은 다음처럼 확인이 가능합니다. 

본 글에서는 윈도우의 명령 프롬프트에서 진행했지만 리눅스의 터미널에서도 동일한 방법으로 확인할 수 있습니다. 

 

C:\Users\webnautes>python
Python 3.7.7 (tags/v3.7.7:d7c567b08f, Mar 10 2020, 10:41:24) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
2020-08-22 16:20:07.221928: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cudart64_101.dll
>>> tf.__version__
'2.3.0-rc0'
>>>

 

 

 

3. 아래 링크의 프로젝트를 다운로드한 후, 압축을 풀어줍니다.  

초록색 버튼 Code를 클릭한 후, Download ZIP를 클릭하면 yolo 프로젝트가 ZIP 파일로 압축되어 다운로드 됩니다. 

 

https://github.com/hunglc007/tensorflow-yolov4-tflite

 

 

 

 

4. 아래 링크에서 yolov4.weights 파일을 다운로드합니다.

 

https://drive.google.com/open?id=1cewMfusmPjYWbrnuJRuKhPMwRe_b9PaT 

 

 

 

5. yolov4.weights 파일을 압축 푼 폴더의 tensorflow-yolov4-tflite-master\data에 복사해줍니다. 

 

압축 푸는 방법에 따라서는 tensorflow-yolov4-tflite-master\tensorflow-yolov4-tflite-master\data 폴더 안에 복사해줘야 합니다. 

 

 

tensorflow-yolov4-tflite-master 폴더를 사용자 폴더 위치에 복사해두면 진행하기 편합니다.

명령 프롬프트 실행시 초기 위치입니다. 

 

C:\Users\webnautes\

 

 

 

6. 윈도우키 + R을 누른 후, cmd를 입력하여 명령 프롬프트를 실행합니다.

 

 

 

7. 압축을 풀은 폴더로 이동합니다. 

 

C:\Users\webnautes> cd tensorflow-yolov4-tflite-master

 

 

 

8.  다크넷 가중치 파일을 텐서플로우를 위한 것으로 변환합니다. 

 

python save_model.py --weights ./data/yolov4.weights --output ./checkpoints/yolov4-416 --input_size 416 --model yolov4

 

tflite 버전으로도 변환합니다.

 

python save_model.py --weights ./data/yolov4.weights --output ./checkpoints/yolov4-416-tflite --input_size 416 --model yolov4 --framework tflite

 

python convert_tflite.py --weights ./checkpoints/yolov4-416-tflite --output ./checkpoints/yolov4-416.tflite

 

 

 

9. 다음 명령으로 실행하고 잠시 기다리면 오브젝트 디텍션 결과가 보여집니다. 

 

결과 이미지를 보여주기 위해 PIL을 사용했기 때문에 그림판 같은 프로그램에서 결과가 보여집니다. 

어떤 프로그램에서 결과를 보여줄지 선택해야 할 수도 있습니다. 

 

 

yolov4 일반 버전.

 

python detect.py --weights ./checkpoints/yolov4-416 --size 416 --model yolov4 --image ./data/kite.jpg

 

 

 

yolov4 tflite 버전

 

python detect.py --weights ./checkpoints/yolov4-416.tflite --size 416 --model yolov4 --image ./data/kite.jpg --framework tflite

 

https://stackoverflow.com/a/54137730 에  따르면 tensorflow lite는 arm 프로세서에 최적화되어 있어

PC에서는 오히려 느리다고 합니다. 

 

 

 

detectvideo.py를 수정하여 실행해봤는데  CUDA를 사용했는데도 webcam을 입력으로 돌리기에는 너무 느리군요. 

확인이 필요할 듯합니다.

 

yolov4 tflite를 사용하면 1초 정도로 검출 속도가 나오지만 yolov4를 사용하면 40ms 정도 속도가 나왔습니다.

tensorflow-yolov4-tflite-master 폴더 내에서 실행해야합니다. 사용하는 모듈이 더 있는거 같은데 아직 확인못해봤습니다. 


import time
import tensorflow as tf
physical_devices = tf.config.experimental.list_physical_devices('GPU')

if len(physical_devices) > 0:
    tf.config.experimental.set_memory_growth(physical_devices[0], True)
from absl import app
import core.utils as utils
from core.yolov4 import filter_boxes
from tensorflow.python.saved_model import tag_constants
from PIL import Image
import cv2
import numpy as np


framework = 'tf' #'tflite' # tf, tflite, trt
weights = './checkpoints/yolov4-416' #'./checkpoints/yolov4-416.tflite'
size = 416 # resize images to
tiny = False  # 'yolo or yolo-tiny'
model = 'yolov4' # yolov3 or yolov4
iou = 0.45 # iou threshold
score = 0.25 # score threshold

def main(_argv):

    input_size = 416

    vid = cv2.VideoCapture(0)

    if framework == 'tflite':
        interpreter = tf.lite.Interpreter(model_path=weights)
        interpreter.allocate_tensors()
        input_details = interpreter.get_input_details()
        output_details = interpreter.get_output_details()
        print(input_details)
        print(output_details)
    else:
        saved_model_loaded = tf.saved_model.load(weights, tags=[tag_constants.SERVING])
        infer = saved_model_loaded.signatures['serving_default']
   
    frame_id = 0
    while True:
        return_value, frame = vid.read()
        if return_value:
            frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
            image = Image.fromarray(frame)
        else:
            if frame_id == vid.get(cv2.CAP_PROP_FRAME_COUNT):
                print("Video processing complete")
                break
            raise ValueError("No image! Try with another video format")
       
        frame_size = frame.shape[:2]
        image_data = cv2.resize(frame, (input_size, input_size))
        image_data = image_data / 255.
        image_data = image_data[np.newaxis, ...].astype(np.float32)
        prev_time = time.time()


        if framework == 'tflite':
            interpreter.set_tensor(input_details[0]['index'], image_data)
            interpreter.invoke()
            pred = [interpreter.get_tensor(output_details[i]['index']) for i in range(len(output_details))]

            boxes, pred_conf = filter_boxes(pred[0], pred[1], score_threshold=0.25,
                                            input_shape=tf.constant([input_size, input_size]))
        else:
            batch_data = tf.constant(image_data)
            pred_bbox = infer(batch_data)
            for key, value in pred_bbox.items():
                boxes = value[:, :, 0:4]
                pred_conf = value[:, :, 4:]

        boxes, scores, classes, valid_detections = tf.image.combined_non_max_suppression(
            boxes=tf.reshape(boxes, (tf.shape(boxes)[0], -1, 1, 4)),
            scores=tf.reshape(
                pred_conf, (tf.shape(pred_conf)[0], -1, tf.shape(pred_conf)[-1])),
            max_output_size_per_class=50,
            max_total_size=50,
            iou_threshold=iou,
            score_threshold=score
        )
        pred_bbox = [boxes.numpy(), scores.numpy(), classes.numpy(), valid_detections.numpy()]
        image = utils.draw_bbox(frame, pred_bbox)
        curr_time = time.time()
        exec_time = curr_time - prev_time
        result = np.asarray(image)
        info = "time: %.2f ms" %(1000*exec_time)
        print(info)

        result = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)

        cv2.namedWindow("result", cv2.WINDOW_AUTOSIZE)
        cv2.imshow("result", result)
        if cv2.waitKey(1) & 0xFF == ord('q'): break

        frame_id += 1

if __name__ == '__main__':
    try:
        app.run(main)
    except SystemExit:
        pass


반응형

포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
질문을 남겨주면 가능한 빨리 답변드립니다.

여러분의 응원으로 좋은 컨텐츠가 만들어집니다.
지금 본 내용이 도움이 되었다면 유튜브 구독 부탁드립니다. 감사합니다 ~~

유튜브 구독하기


제가 쓴 책도 한번 검토해보세요 ^^

  1. 이전 댓글 더보기
  2. Favicon of https://5vertime.tistory.com BlogIcon 메랑이 2020.07.07 18:10 신고

    kite.jpg 대신에 mp4파일로 테스트해보고 싶은데 명령어를 뭐라 쳐야 할까요?

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2020.07.07 18:56 신고

      다음 링크에 있는 detectvideo.py를 사용하면 될듯합니다. 해당 페이지에 실행방법이 없어서 코드보고 연구를 해야할 듯합니다.

      https://github.com/hunglc007/tensorflow-yolov4-tflite

    • Favicon of https://5vertime.tistory.com BlogIcon 메랑이 2020.07.08 09:50 신고

      감사합니다 !

  3. 우진 2020.07.12 02:13

    unresolved import 'tensorflow.compat.v1'
    라는 문제가 나타납니다.

    이점을 어떻게 해결해야 할까요?
    tensorflow는 설치를 했는데 이런 오류가 발생해서 어떻게 해야할지를 모르겠네요...

    이 문제가 제가 아나콘다를 통해서 파이썬을 실행하고 있기에 발생하는 문제점 인가요?/

  4. ppyung 2020.07.20 10:37

    깔끔한 설명과 자료 감사드립니다. 저도 오류가 나는데요. 말씀해주신대로 다운 받고 지정폴더에 weights 넣었는데 이러네요..
    구글링해도 해결이 안되고... 혹시 아시는 게 있나해서 글 남깁니다! 에러는 아래와 같습니다. (Tensorflow 2.1 입니다)

    File "C:\Users\user\Anaconda3\lib\site-packages\tensorflow_core\python\saved_model\loader_impl.py", line 83, in parse_saved_model
    constants.SAVED_MODEL_FILENAME_PB))
    OSError: SavedModel file does not exist at: ./data/yolov4.weights/{saved_model.pbtxt|saved_model.pb

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2020.07.20 19:14 신고

      혹시 IDE나 에디터를 사용한다면 해당 파일을 찾는 위치가 소스코드파일이 있는 곳이 아닐 수 있습니다

    • BlogIcon Humble 2020.07.23 01:43

      혹시 에러 잡으셨나요???

    • Favicon of https://ruler-dd.tistory.com BlogIcon 코딩하고자용 2020.08.22 14:24 신고

      혹시 이 오류에 대해서 해결 방법 아시는 분 댓글 부탁드려요 ㅠㅠ tensorflow 2.3으로 변경해도 같은 오류가 뜨네요..

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2020.08.22 17:22 신고

      방법이 변경되어 포스트를 다시 작성했습니다. 참고하세요

  5. Humble 2020.07.22 17:30

    Traceback (most recent call last):
    File "detect.py", line 90, in <module>
    app.run(main)
    File "C:\Program Files\Python36\lib\site-packages\absl\app.py", line 299, in run
    _run_main(main, args)
    File "C:\Program Files\Python36\lib\site-packages\absl\app.py", line 250, in _run_main
    sys.exit(main(argv))
    File "detect.py", line 63, in main
    saved_model_loaded = tf.saved_model.load(FLAGS.weights, tags=[tag_constants.SERVING])
    File "C:\Program Files\Python36\lib\site-packages\tensorflow\python\util\deprecation.py", line 324, in new_func
    return func(*args, **kwargs)
    TypeError: load() missing 1 required positional argument: 'export_dir'

    에러가 뜨는데 무슨 문제일까요??

  6. 연습용 2020.07.23 11:08

    저는 Tensorflow 2.1말고 darknet를 이용하여 yolo를 설치 할려고 합니다
    https://developer-thislee.tistory.com/16 이 사이트를 보고 따라 했는데
    마지막 예제 코드를 실행 하였을 때
    23 yolo
    Loading weights from yolov3-tiny.weights...Done!
    data/dog.jpg: Predicted in 12.082938 seconds.
    Bus error (core dumped)

    Bus error 가 왜 뜨는지 아시나요???

  7. JinwooBae 2020.08.05 08:47

    안녕하세요 잘 보았습니다. 혹시 MJPG-Streamer을 통해 실시간 streaming되는 영상을 입력으로 받아서 yolo4 를 돌리고 detection할 수 있나요?

  8. 망치땅콩 2020.08.20 01:07

    안녕하세요

    8. 다음 명령으로 실행하고 잠시 기다리면 오브젝트 디텍션 결과가 보여집니다.
    결과 이미지를 보여주기 위해 PIL을 사용했기 때문에 그림판 같은 프로그램에서 결과가 보여집니다.
    어떤 프로그램에서 결과를 보여줄지 선택해야 할 수도 있습니다.

    python detect.py --weights ./data/yolov4.weights --framework tf --size 608 --image ./data/kite.jpg

    8번과정을 실행하면

    Traceback (most recent call last):
    File "detect.py", line 10, in <module>
    from PIL import Image
    ModuleNotFoundError: No module named 'PIL'

    라는 오류가 발생합니다. 텐서플로우버전도 동일하게 진행했는데 어떤 문제 때문인지 짐작 가시나요?

    • BlogIcon 망치땅콩 2020.08.20 01:36

      pip3 install pillow 실행후 앞서말한 문제는 해결되었는데

      File "C:\Users\BEOMSUNKIM\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow_core\python\saved_model\loader_impl.py", line 83, in parse_saved_model
      constants.SAVED_MODEL_FILENAME_PB))
      OSError: SavedModel file does not exist at: ./data/yolov4.weights/{saved_model.pbtxt|saved_model.pb} 라는 새로운 문제에 직면했습니다..

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2020.08.20 06:23 신고

      다음을 확인해보세요

      yolov4.weights 파일을 압축 푹 폴더의 tensorflow-yolov4-tflite-master\data에 복사해줍니다. 


      압축 푸는 방법에 따라서는 tensorflow-yolov4-tflite-master\tensorflow-yolov4-tflite-master\data 폴더 안에 복사해줘야 합니다.

    • BlogIcon 망치땅콩 2020.08.21 10:14

      텐서플로우 2.3으로 설치하고나서부터 정상적으로 작동했습니다! 감사합니다~~~

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2020.08.21 10:31 신고

      다행입니다

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2020.08.22 17:23 신고

      방법이 변경되어 포스트를 다시 작성했습니다. 참고하세요

  9. mkjin85@hanmail.net 2020.08.26 19:42

    안녕하세요. 현재 커스텀 데이터로 학습을 하고 일반 모델과 tiny모델로 학습을 진행하여 마무리를 하였는데요. 일반 버젼은 물론 디텍션까지 가능합니다. 혹시 tflite 변경시 오류가 있으신지 여쭤보고 싶네요. 경험을 같이 공유히면 좋을것 같습니다^^

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2020.08.26 19:43 신고

      커스텀 데이터는 아직 못해봤네요

    • Favicon of https://deepflowest.tistory.com BlogIcon Orange57 2020.11.01 21:22 신고

      안녕하세요. 저도 커스텀 데이터로 돌려보고 싶어서, YOLO_mark로 라벨링 후 다크넷으로 학습시켜서 weights을 얻었습니다. 그래서 그 weights파일을 원래 위치에 넣고 돌렸는데, 디텍션이 안 됩니다.

      혹시 어떻게 커스텀 데이터로 디텍션까지 하셨는지 방법 공유 해주실 수 있나요?

  10. cys 2020.09.03 09:35

    [saved 문제 해결법]
    mv /worksapce/tensorflow-yolov4-tflite/yolov4-416-tflite/ /worksapce/tensorflow-yolov4-tflite/yolov4-416

    폴더명 바꿔주면 해결이 됩니다.

  11. ㅇㅇ 2020.09.03 10:20

    안드로이드로 실행할수있나염?

  12. jy 2020.09.25 09:49

    안녕하세요.. 저는 YOLO 4를 공부하고 있습니다.
    제가 tflite에서, 코드를 가져와서, 주피터에 코드를 복사해서 붙여 넣기를 했습니다.
    (제 컴퓨터에서 실습은 되구요)
    마지막에, train.py에서 load_weights 함수를 불러올때 에러가 납니다.
    에러 내용은 이렇습니다.
    No such layer: conv2d.
    왜 그런 것일까요? 도움 요청드립니다. ㅠ.ㅠ

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2020.09.25 11:29 신고

      아마도 주피터랑 일반 파이썬이랑 차이가 있어서 그런것.같습니다.

  13. jy 2020.09.28 14:23

    그럼 혹시 주피터 말고 , 어디에서 구현하는 것이 좋을까요?

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2020.09.28 19:54 신고

      일반 파이썬에서 비주얼 스튜디오 코드로 작업을 하면 어떨까 싶네요.

      다음 포스트의 영상을 참고하세요

      Visual Studio Code를 사용하여 Python 프로그래밍 환경 만들기( Tensorflow, OpenCV를 위해 사용 가능해짐)

      https://webnautes.tistory.com/1369

  14. kdw530 2020.10.11 21:59

    안녕하세요! 많이 배우고 있습니다!
    no module named 'core'라고 계속 오류가 나오는데 어떤 문제일까요?

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2020.10.11 22:11 신고

      전체 에러메시지가 어떻게 되나요?

    • BlogIcon kdw530 2020.10.12 02:11

      ModuleNotFoundError: No module named 'core' 이렇게 뜹니다

    • BlogIcon kdw530 2020.10.12 02:11

      ModuleNotFoundError: No module named 'core' 이렇게 뜹니다

  15. kkk 2020.10.27 02:39

    https://github.com/hhk7734/tensorflow-yolov4 쉽게 사용할 수 있게 만든 패키진데 한 번 사용해보세요~

  16. mmm 2020.10.29 11:18

    혹시 라즈베리파이로도 똑같이 할수 있을까요?"

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2020.10.29 11:31 신고

      태스트해보진 않았지만 라즈베리파이에서는 실행속도가 느려서.수정이 필요할듯합니다.

  17. 재연 2020.11.04 21:13

    안녕하세요.
    혹시 detectvideo.py에서 웹캠으로 촬영 시 human class만 detect하고 싶은데 가능할까요?
    가능하다면 어느부분을 수정해야할까용...
    혹시 된다면 프레임이 좀 올라가긴 할까요?

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2020.11.04 21:21 신고

      해보지 않아서 테스트가 필요할 듯합니다.
      예상되는 부분은 아래 코드에서 classes.numpy() 값이 사람인 경우 특정값일듯합니다.

      boxes, scores, classes, valid_detections = tf.image.combined_non_max_suppression

  18. Favicon of https://kukbyung.tistory.com BlogIcon endu 2020.11.10 22:50 신고

    안녕하세요! 먼저 상세한 설명 감사합니다. 큰 도움이 되었습니다! 여쭤볼께 하나 있습니다.

    저는 YOLOv4 모델을 INT8으로 양자화해서 tflite로 변환하려고 합니다. hunglc007님의 github를 보면 float32, float16, int8 이렇게 3가지 형태를 선택할 수 있는 것같은데요.. 글 써 주신바와 같이

    python convert_tflite.py --weights ./checkpoints/yolov4-416-tflite --output ./checkpoints/yolov4-416.tflite 명령으로는 tflite 파일이 생성되는데
    python convert_tflite.py --weights ./checkpoints/yolov4-416-tflite --output ./checkpoints/yolov4-416-int8.tflite --quantize_mode int8 --dataset ./data/dataset/val2017.txt
    으로는 다음과 같은 메시지와 함께 tflite 파일이 생성되지 않았습니다 ㅜㅜ

    RuntimeError: tensorflow/lite/kernels/dequantize.cc:61 op_context.input->type == kTfLiteUInt8 || op_context.input->type == kTfLiteInt8 || op_context.input->type == kTfLiteInt16 || op_context.input->type == kTfLiteFloat16 was not true.Node number 64 (DEQUANTIZE) failed to prepare.

    혹시 이와 관련한 경험이나 조언 주실만한 부분이 있을까요?

  19. Favicon of https://sjyoon2012.tistory.com BlogIcon 구름바다2012 2020.11.18 08:55 신고

    안녕 하세요. 많은 도움 받고 있어 감사 합니다.

    위의 내용중에
    python save_model.py --weights ./data/yolov4.weights --output ./checkpoints/yolov4-416 --input_size 416 --model yolov4
    을 치면 checkpoints 디렉토리가 생성 되고 뭔가 깔려야 하는데
    그냥 prompt만 나오고 아무 동작을 안하는것 같습니다.

    어떻게 진행 되는지 확인 할수 있는 방법이 있나요?

  20. Favicon of https://sohogn.tistory.com BlogIcon hanser217 2020.11.23 10:29 신고

    Traceback (most recent call last):
    File "save_model.py", line 58, in <module>
    app.run(main)
    File "C:\Users\SMT080\anaconda3\lib\site-packages\absl\app.py", line 303, in run
    _run_main(main, args)
    File "C:\Users\SMT080\anaconda3\lib\site-packages\absl\app.py", line 251, in _run_main
    sys.exit(main(argv))
    File "save_model.py", line 54, in main
    save_tf()
    File "save_model.py", line 49, in save_tf
    utils.load_weights(model, FLAGS.weights, FLAGS.model, FLAGS.tiny)
    File "C:\Users\SMT080\Desktop\tensorflow-yolov4-tflite-master\core\utils.py", line 63, in load_weights
    conv_weights = conv_weights.reshape(conv_shape).transpose([2, 3, 1, 0])
    ValueError: cannot reshape array of size 219643 into shape (512,256,3,3)

    이 방법은 어떻게 해결해야 되나요 우선 윈도우고
    darknet 방식으로 커스텀 웨이트 파일을 만들어서 변환 하려고 했는데 안되네요 ㅠㅠ
    기존 욜로v4 웨이트 파일은 변환이 됫는데 쉐이프 문제로 어떻게 변환해야되나요? 궁금합니다 ㅠㅠㅠㅠㅠ
    그리고 혹시 tensorflow 커스텀 방식이 있나요???

  21. Favicon of https://thedaftpigeon.tistory.com BlogIcon The Daft Pigeon 2020.12.30 13:12 신고

    C:\Users\q1w2a\tensorflow-yolov4-tflite-master>python save_model.py --weights ./data/yolov4.weights --output ./checkpoints/yolov4-416 --input_size 416 --model yolov4
    python: can't open file 'save_model.py': [Errno 2] No such file or directory

    8. 다크넷 가중치 파일을 텐서플로우를 위한 것으로 변환합니다.
    이 과정에서 tensorflow-yolov4-tflite-master 폴더에 save_model.py 파일이 분명 있는데도 해당 파일이 없다고 뜨네요
    이유가 뭘까요 ㅠㅠ 따로 경로나 위치를 바꾸지는 않았는데

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2020.12.30 13:51 신고

      현재 위치에서 명령 프롬프트에서 dir 명령으로 확인하면 해당파일이 보이나요?

    • Favicon of https://thedaftpigeon.tistory.com BlogIcon The Daft Pigeon 2020.12.30 15:45 신고

      C:\Users\q1w2a\tensorflow-yolov4-tflite-master\tensorflow-yolov4-tflite-master 디렉터리

      2020-12-29 오후 06:00 <DIR> .
      2020-12-29 오후 06:00 <DIR> ..
      2020-12-29 오후 06:00 <DIR> android
      2020-08-11 오전 02:15 5,769 benchmarks.py
      2020-08-11 오전 02:15 3,351 CODE_OF_CONDUCT.md
      2020-08-11 오전 02:15 2,932 convert_tflite.py
      2020-08-11 오전 02:15 4,150 convert_trt.py
      2020-12-29 오후 06:06 <DIR> core
      2020-12-29 오후 06:00 <DIR> data
      2020-08-11 오전 02:15 3,993 detect.py
      2020-08-11 오전 02:15 5,337 detectvideo.py
      2020-08-11 오전 02:15 6,650 evaluate.py
      2020-08-11 오전 02:15 1,069 LICENSE
      2020-12-29 오후 06:00 <DIR> mAP
      2020-08-11 오전 02:15 6,332 README.md
      2020-08-11 오전 02:15 94 requirements-gpu.txt
      2020-08-11 오전 02:15 90 requirements.txt
      2020-08-11 오전 02:15 1,881,827 result-int8.png
      2020-08-11 오전 02:15 1,877,626 result.png
      2020-08-11 오전 02:15 2,602 save_model.py
      2020-12-29 오후 06:00 <DIR> scripts
      2020-08-11 오전 02:15 7,322 train.py
      15개 파일 3,809,144 바이트
      7개 디렉터리 203,066,269,696 바이트 남음

      네 dir하면 해당 파일이 보입니다

    • Favicon of https://thedaftpigeon.tistory.com BlogIcon The Daft Pigeon 2020.12.30 15:46 신고

      C:\Users\q1w2a\tensorflow-yolov4-tflite-master\tensorflow-yolov4-tflite-master>python save_model.py --weights ./data/yolov4.weights --output ./checkpoints/yolov4-416 --input_size 416 --model yolov4
      2020-12-30 15:43:52.486017: W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'cudart64_101.dll'; dlerror: cudart64_101.dll not found
      2020-12-30 15:43:52.493107: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
      Traceback (most recent call last):
      File "save_model.py", line 4, in <module>
      from core.yolov4 import YOLO, decode, filter_boxes
      File "C:\Users\q1w2a\tensorflow-yolov4-tflite-master\tensorflow-yolov4-tflite-master\core\yolov4.py", line 6, in <module>
      import core.utils as utils
      File "C:\Users\q1w2a\tensorflow-yolov4-tflite-master\tensorflow-yolov4-tflite-master\core\utils.py", line 6, in <module>
      from core.config import cfg
      File "C:\Users\q1w2a\tensorflow-yolov4-tflite-master\tensorflow-yolov4-tflite-master\core\config.py", line 3, in <module>
      from easydict import EasyDict as edict
      ModuleNotFoundError: No module named 'easydict'

      지금은 또 이런 에러 메시지가 뜹니다

    • Favicon of https://thedaftpigeon.tistory.com BlogIcon The Daft Pigeon 2020.12.30 15:52 신고

      pip install easydict 명령으로 easydict 설치후에 python save_model.py --weights ./data/yolov4.weights --output ./checkpoints/yolov4-416 --input_size 416 --model yolov4 실행시에 wf = open(weights_file, 'rb')
      FileNotFoundError: [Errno 2] No such file or directory: './data/yolov4.weights'
      라고 에러가 뜹니다

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2020.12.30 16:07 신고

      yolov4.weights를 다운로드 받아 현재 디렉토리에 있는 data디렉토리에 복사하고 해보세요

    • Favicon of https://thedaftpigeon.tistory.com BlogIcon The Daft Pigeon 2020.12.30 16:18 신고

      2020-12-29 오후 05:55 257,717,640 yolov4 (1).weights
      5개 파일 260,749,365 바이트
      5개 디렉터리 202,848,591,872 바이트 남음

      yolov4 (1).weights 파일이름이 다른게 들어 있어서 삭제를 하고 다시 폴더에 넣었는데도 dir명령으로 확인하면 파일명이 yolov4 (1).weights라고 뜨네요 ㅠ 재부팅을 해도 마찬가지고

    • Favicon of https://thedaftpigeon.tistory.com BlogIcon The Daft Pigeon 2020.12.30 16:49 신고

      어우 해결했습니다... 알고보니 tensorflow-yolov4-tflite-master 폴더가 전혀 다른 위치에 2개나 있었는데 멍청하게 왜 안되나 이러고 있었네요 ㅠ 잘됩니다 답변 감사합니다!

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2020.12.30 17:16 신고

      해결되서 다행입니다

+ Recent posts