ImportError: cannot import name 'string_int_label_map_pb2' from 'object_detection.protos 에러 발생시 해결 방법
labeling 이미지를 이용해 TFRecord 로 변환하려고 tesorflow git 에서 다음 파일을 받고 실행하는데 에러가 발생한다.
GitHub - tensorflow/models: Models and examples built with TensorFlow
Models and examples built with TensorFlow. Contribute to tensorflow/models development by creating an account on GitHub.
github.com
protobuf 가 설치가 안되면 에러가 난다고 하길래 설치를 시도해보았으나 동일하다.
관련해서 이슈를 찾아보았더니 꽤 많은 유저에게 문제가 발생한것 같았다.
stackoverflow 부터 git issue에도 쉽게 찾을수 있었다.
문제 해결 방법이
1. 관련 패키지 모두 재설치
2. protobuf 소스 설치
3. string_int_label_map_pb2 파일을 해당 폴더에 넣기
등등 다양했는데
1. 가상환경을 새로 만들어 관련 패키지 새로 설치도 해보았고
2. protobuf 소스 설치도 해보았으나
모두 안되었다..
마지막 3번은 나중에 패키지를 다시 설치할때 또 같은 문제가 반복 될수도 있지만 어쩔수없이 일단 사용해야 하다보니 따라보기로 했다.
cd ~/venv/lib/python3.8/site-packages/object_detection/protos
필자는 가상 환경에 파이썬 패키지가 설치 되어 있으므로 경로가 ~/venv/lib/python3.8 이렇게 시작이 된다.
이부분은 자신의 환경에 맞추어 경로를 변경해야 한다.
wget https://raw.githubusercontent.com/datitran/object_detector_app/master/object_detection/protos/string_int_label_map_pb2.py
문제가 되는 파일을 다운받고 다시 원래 폴더로 돌아와서 파이썬 코드를 실행해본다.
python create_coco_tf_record.py
Import 에러 대신 다른 에러가 나온다.
파라메터가 없다는 에러이므로 에러지만 잘 된다는 뜻이다!
이제 CoCo 데이터셋을 가지고 TFRecord 를 생성할수 있다.
하지만............
파라메터를 다 입력하고 변환 시작 하려니 또 에러가 발생한다.
.
.
.
.
.
.
.
다시 처음부터 설치를 해보자
![](https://t1.daumcdn.net/keditor/emoticon/face/large/006.png)
https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf2.md
GitHub - tensorflow/models: Models and examples built with TensorFlow
Models and examples built with TensorFlow. Contribute to tensorflow/models development by creating an account on GitHub.
github.com
#protobuf 설치
cd ~
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.18.0/protobuf-python-3.18.0.tar.gz
tar -xvf protobuf-python-3.18.0.tar.gz
cd protobuf-3.18.0/
./configure
make
make check
make install
sudo ldconfig
cd ~
git clone https://github.com/tensorflow/models.git
cd models/research
protoc object_detection/protos/*.proto --python_out=.
cp object_detection/packages/tf2/setup.py .
python -m pip install --use-feature=2020-resolver .
여기까지 설치가 끝났으면 테스트를 해본다.
#test
python object_detection/builders/model_builder_tf2_test.py
잘된다...
![](https://t1.daumcdn.net/keditor/emoticon/face/large/024.png)
Cheers!