CenterNet ์ค์ต (Windows)
์ด ๊ธ์ ์ ๊ฐ ใCenterNet: Objects as Pointsใ์ ์ฝ๋๋ฅผ ์ง์ ์ค์ตํด๋ณธ ๊ณผ์ ์ ๊ธฐ๋กํ ํฌ์คํธ ์ ๋๋ค.
์คํ ํ๊ฒฝ์ ์๋์ ๊ฐ์ต๋๋ค.
(2021.06.03)
- Windows ๐ฅ
- Python: 3.9.2
- PyTorch: 1.8.0
- CUDA: 10.2
- VS2019
- CenterNet last commit: 2020.06.21
GitHub์ ๊ฒ์๋ <CenterNet>์ ์ฝ๋์ ํํ ๋ฆฌ์ผ์ Windows ํ๊ฒฝ์์ ๊ทธ๋๋ก ์คํํ๋ฉด, ์๋์ ๊ฐ์ ์ค๋ฅ๋ฅผ ์ป๊ฒ ๋ฉ๋๋ค.
ModuleNotFoundError: No module named '_ext'
์ด ํฌ์คํธ๋ Windows ํ๊ฒฝ์์ <CenterNet>์ ๋๋ฆฌ๊ณ ์ ํ๋ ๋ถ๋ค์ ์ํ ํฌ์คํธ ์ ๋๋ค! ๊ฐ์ด๋๋ฅผ ๋ฐ๋ผํ๊ธฐ ์ , ๋ณธ์ธ์ ์คํ ํ๊ฒฝ์ ๋ฐ.๋.์. ์ฒดํฌํด์ฃผ์ธ์! (์ ๋ฐฉ๋ฒ๋ ์๊ฐ์ด ์ง๋๋ฉด, ์ ์์ ์ผ๋ก ๋์ํ์ง ์์ ์๋ ์์ต๋๋ค ใ ใ )
Start CenterNet on Windows
๊ฐ์ฅ ๋จผ์ ์๋ํด๋ณผ ๊ฒ์ <CenterNet>์์ ์ ์ํ๋ Installation
๋ฌธ์๋ฅผ ๊ทธ๋๋ก ๋ฐ๋ผํด๋ณด๋ ๊ฒ ์
๋๋ค.
๐ CenterNet/readme/INSTALL.md
์ด ๊ณผ์ ์ ๊ทธ๋๋ก ์งํํ์์๋ demo.py
์คํ์ ์คํจํ๋ค๋ฉด, <CenterNet>์ Issue๋ก ์ฌ๋ผ์จ โauskโ๋์ ์ด์๋ฅผ ๋ฐ๋ผํฉ๋๋ค.
๐ CenterNet/Issue - CenterNet works ok on Pytorch 1.1 + Cuda10.1 + Win10
โauskโ๋์ ์ด์๋ฅผ ๊ทธ๋๋ก ์งํํ์์๋ ์คํจํ๋ค๋ฉด, ์ ๊ฐ ์ฑ๊ณตํ ๋ฐฉ์์ผ๋ก ์งํํด๋ณด์ธ์!
๐ฅ ์ ๋ ํํ ๋ฆฌ์ผ ์์ฑ์ ์ํด GitHub์์ <CenterNet> ๋ ํฌ๋ฅผ ๋ค์ ๋ค์ด ๋ฐ์์ ์งํํ์ต๋๋ค!
๐ฅ Python Interpreter ์ค์ ๊ณผ requirements.txt
์ค์น๋ ๋ชจ๋ ์๋ฃ๋์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
1. Build nms
cd src/lib/external/setup.py
ํ์ผ์์ "-Wno-cpp"
๋ถ๋ถ์ ์๋์ ๊ฐ์ด ์ฃผ์์ฒ๋ฆฌ
extensions = [
Extension(
"nms",
["nms.pyx"],
# extra_compile_args=["-Wno-cpp", "-Wno-unused-function"]
)
]
์์ ํ, ์๋์ ๋ช ๋ น์ด ์คํ
cd src/lib/external
python setup.py build_ext --inplace
## output
nms.c(7997): warning C4244: '=': 'double'์์ 'float'(์ผ)๋ก ๋ณํํ๋ฉด์ ๋ฐ์ดํฐ๊ฐ ์์ค๋ ์ ์์ต๋๋ค.
nms.c(8016): warning C4244: '=': 'double'์์ 'float'(์ผ)๋ก ๋ณํํ๋ฉด์ ๋ฐ์ดํฐ๊ฐ ์์ค๋ ์ ์์ต๋๋ค.
nms.c(8059): warning C4244: '=': 'double'์์ 'float'(์ผ)๋ก ๋ณํํ๋ฉด์ ๋ฐ์ดํฐ๊ฐ ์์ค๋ ์ ์์ต๋๋ค.
nms.c(8192): warning C4244: 'ํจ์': 'double'์์ 'float'(์ผ)๋ก ๋ณํํ๋ฉด์ ๋ฐ์ดํฐ๊ฐ ์์ค๋ ์ ์์ต๋๋ค.
...
...
build\temp.win-amd64-3.9\Release\nms.cp39-win_amd64.lib ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ build\temp.win-amd64-3.9\Release\nms.cp39-win_amd64.exp ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ์์ต๋๋ค.
์ฝ๋๋ฅผ ์์ฑํ๊ณ ์์ต๋๋ค.
์ฝ๋๋ฅผ ์์ฑํ์ต๋๋ค.
์คํ ํ, ์์ ๊ฐ์ด ์ถ๋ ฅ๋๋ฉด ์ ์์ ์ผ๋ก ์๋ฃ๋ ๊ฒ. (warning์ ๋ฌด์ํด๋ ๋๋ค.)
2. Clone and Build DCNv2
์ฌ๊ธฐ์์ โauskโ๋์ ์ด์์ ๋ค๋ฅด๊ฒ ์งํํ๋ค.
๋จผ์ , ๊ธฐ์กด <CenterNet>์ src/lib/models/networks
์ DCNv2
ํด๋๋ฅผ ์ญ์ ํ๋ค. <CeterNet>dms PyTorch 0.4.1
์ด๋ผ๋ ์์ฃผ ๊ตฌ์๋ ๋ฒ์ ์ PyTorch๋ฅผ ์ฐ๊ณ ์๊ณ , CenterNet์ ๋ ํฌ์๋ ์ด๊ฒ์ ๋ง์ถ DCNv2 ๋ชจ๋ธ์ด ๋ค์ด์๋ค. ๊ทธ๋์ CenterNet ๋ ํฌ์ DCNv2๋ PyTorch 1.x
๋์๋ ์ ํ ํธํ ๋์ง ์๋๋ค.
โauskโ๋์ ์ด์์์๋ DCNv2์ original repo๋ฅผ ๋ค์ด ๋ฐ์ผ๋ผ๊ณ ํ์ง๋ง, ์ด๊ฒ ์ญ์ ๋ณธ์ธ์ ๋์ํ์ง ์์๋ค. ๋์ ์๋์ DCNv2 ๋ ํฌ๋ฅผ ๋ค์ด ๋ฐ์์ ๊ธฐ์กด DCNv2์ ํด๋์ ๋ฃ๋๋ก ํ์!
๐ jinfagang/DCNv2_latest // compatible with PyTorch 1.8+
๋ค์ด & unzip ํ, ๊ฒฝ๋ก๋ก ๋ค์ด๊ฐ์ ์๋์ ๋ช ๋ น์ด๋ฅผ ์คํํ๋ค.
cd src/lib/models/networks/DCNv2
python setup.py build develop
## output
...
...
์ฝ๋๋ฅผ ์์ฑํ๊ณ ์์ต๋๋ค.
์ฝ๋๋ฅผ ์์ฑํ์ต๋๋ค.
copying build\lib.win-amd64-3.9\_ext.cp39-win_amd64.pyd ->
Creating c:\users\hsy4462\miniconda3\envs\pytorch_latest\lib\site-packages\DCNv2.egg-link (link to .)
Removing DCNv2 0.1 from easy-install.pth file
Adding DCNv2 0.1 to easy-install.pth file
Installed c:\users\hsy4462\documents\github\centernet-master\src\lib\models\networks\dcnv2
Processing dependencies for DCNv2==0.1
Finished processing dependencies for DCNv2==0.1
์์ ๊ฐ์ ์ถ๋ ฅ ๊ฒฐ๊ณผ์ DCNv2/
ํด๋์ build/
, DCNv2.egg-info/
, _ext.cp39-win_amd64.pyd
๋ฑ์ด ์์ฑ๋์๋ค๋ฉด, ์ฑ๊ณต์ด๋ค!
DCNv2/
ํด๋์ ์๋ testcpu.py
, testcuda.py
๋ฅผ ์คํ์์ผ๋ ์จ์ ํ ๋์ํ์ง๋ ์์ ๊ฒ์ด๋ค. ๊ทธ๋๋ ๊ด์ฐฎ๋ค. ๋ค์ ๋จ๊ณ๋ก ๋์ด๊ฐ์.
3. Run Demo
์ด์ <CenterNet>์ demo.py
๋ฅผ ์คํ์์ผ ์ ๋์ํ๋์ง ํ์ธํด๋ณด์.
๋จผ์ ๋์์ ํ์ํ ๋ชจ๋ธ์ ๋ค์ด ๋ฐ๋๋ค. CenterNet GitHub์ MODEL ZOO์์ ๋ค์ด ๋ฐ์ ์ ์๋ค. ctdet_coco_dla_2x.pth
๋ฅผ ๋ค์ด๋ฐ์์ models/
ํด๋์ ๋ฃ์ด์ฃผ์.
์ด์ ์๋์ ์ฝ๋๋ฅผ ์คํํด๋ณด์!
cd src
python demo.py ctdet --demo ../images/17790319373_bd19b24cfc_k.jpg --load_model ../models/ctdet_coco_dla_2x.pth --debug 2
์ ์์ ์ผ๋ก ์คํ๋๋ฉด, ์๋์ ์ฌ์ง๋ค์ด ๋์ฌ ๊ฒ์ด๋ค!!