Link
source
video
ํ๋ก์ ํธ ์ค๋ช
โ์ค์์บ โ์ ์๊ธฐ ์ฃผ๋ ํ์ต์ ํ๊ณ ์ ํ๋ ๋ชจ๋์๊ฒ ๋์์ ์ฃผ๊ณ ์ ํ์ฌ, ํ์ต์์ ์๊ฐ ๊ด๋ฆฌ ๋ฐ ๋ชจ๋ํฐ๋ง ์๋น์ค๋ฅผ ์ ๊ณตํ๋ Android ์ฑ ์
๋๋ค. ํ์ต์๊ฐ ๊ด๋ฆฌ, ํ์ต ํ๋ ๋ถ์(์ง์ค ์ฌ๋ถ ํ๋จ), ์ฌ์ฉ์์ ํ์ต ๊ด๋ จ ๋ฐ์ดํฐ ํต๊ณ ์๋ฃ ์ ๊ณต์ด โ์ค์์บ โ์ ์ฃผ๊ธฐ๋ฅ ์
๋๋ค. ํ์ต์์ ์ง์ค ์ฌ๋ถ๋ ํํ ์ฌ๋ถ๋ก ํ๋จ๋๋ฉฐ ํ์ฌ ๋๊ณผ ์
์ ์ธ์ํ์ฌ ๋์ ๊ฐ๊ณ ์
์ ๋ฒ๋ฆฐ ์ํ๊ฐ ์ผ์ ์๊ฐ ์ง์๋๋ ๊ฒฝ์ฐ ํํ์ผ๋ก ํ๋จํฉ๋๋ค.
2021๋
๋ ๋๊ตญ๋ํ๊ต โ์ปดํจํฐ ๊ณตํ ์ข
ํฉ์ค๊ณ1โ์ ํ๋ก์ ํธ๋ก ์งํํ์์ผ๋ฉฐ, ์ค๊ณ๋ฅผ ๋ง์น๊ณ MVP(Minimum Viable Product)๋ฅผ ๊ตฌํํ๋ ๊ฒ์ 1์ฐจ ๋ชฉํ๋ก ํ์ฌ ํ์ฌ ํ์ด๋จธ ๊ธฐ๋ฅ, ์นด๋ฉ๋ผ๋ฅผ ์ด์ฉํ ์ค์๊ฐ ๋ถ์ ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ์๋ฃํ์ต๋๋ค. ํ์ฌ ์ง์ค ์ฌ๋ถ์ ์ ํํ ํ๋จ์ ์ํด AI ๋ชจ๋ธ ์ฑ๋ฅ ๊ฐ์ ๋ฐ ๋ฐ์ดํฐ ์ ์ฅ, API ์ฐ๊ฒฐ ๋ฑ์ ์ถ๊ฐ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ณ ์์ต๋๋ค.
์ฌ์ฉ ๊ธฐ์ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
โข
Android, Kotlin
โข
CameraX
โข
Retrofit2, Moshi
โข
Firebase
๋ด๋นํ ๊ธฐ๋ฅ (Android)
โข
UI ์ค๊ณ ๋ฐ ์ ์ฒด ํ๋ฉด ๊ฐ๋ฐ
โข
Firebase Auth๋ฅผ ์ด์ฉํ ๊ตฌ๊ธ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ
โข
ํ์ด๋จธ ๊ธฐ๋ฅ
โข
CameraX ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํ Preview ๊ธฐ๋ฅ
โข
Firebase ML์ ์ด์ฉํ ์ปค์คํ
Tensorflow-lite ๋ชจ๋ธ ๊ด๋ฆฌ
โข
Tensorflow-lite ๋ชจ๋ธ๊ณผ ์นด๋ฉ๋ผ ์ฐ๊ฒฐ์ ํตํ ์ค์๊ฐ ์ด๋ฏธ์ง ๋ถ์ ๊ธฐ๋ฅ
โข
MPAndroidChart ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํ ํต๊ณ ๊ธฐ๋ฅ
โข
์๋ฒ์ ๋ฐ์ดํฐ ์ ์ฅ
๊นจ๋ฌ์ ์
โข
ViewModel์ ์ด์ฉํ๋ฉด UI ์ปจํธ๋กค๋ฌ์ ๋ฐ์ดํฐ๊ฐ ๋ถ๋ฆฌํ ์ ์๋ค.
โข
Firebase ML : Firebase๋ฅผ ์ฌ์ฉํด ์ปค์คํ
Tensorflow-lite ๋ชจ๋ธ์ ์ฑ๊ณผ ํจ๊ป ํจํค์ง ํ ์ ์๋ค.
โฆ
์ฑ์ ML Kit SDK๋ฅผ ํฌํจํ๋ฉด ML Kit๊ฐ ์ฌ์ฉ์์ ๋ชจ๋ธ์ ์ต์ ๋ฒ์ ์ผ๋ก ์ ์งํ์ฌ ๋ชจ๋ธ ์
๋ฐ์ดํธ๊ฐ ์ฉ์ดํ๋ค.
โฆ
์ปค์คํ
Tensorflow-lite ๋ชจ๋ธ์ ์ฉ๋์ 40MB๋ก ์ ํ๋๋ค.
โข
CameraX๋ Android Jetpack ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์นด๋ฉ๋ผ ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ์ฝ๊ฒ ํ ์ ์๋๋ก ๋์์ค๋ค.
โฆ
cameraProvider.bindToLifecycle() ๋ฉ์๋๋ก ์นด๋ฉ๋ผ์ ์๋ช
์ฃผ๊ธฐ๋ฅผ ์ง์ ํ ์ ์๋ค.
โฆ
imageAnalyzer๋ฅผ ์ค์ ํ์ฌ bindToLifecycle()์ ํด๋น ์ธ์คํด์ค๋ฅผ ์ถ๊ฐํ์ฌ ์ด๋ฏธ์ง ํ๋ก์ธ์ฑ์ ํ ์ ์๋ค.
โฆ
CameraX์ ๊ฒฐ๊ณผ๋ฌผ๋ก ์์ฑ๋ ์ด๋ฏธ์ง๋ YUV ํํ์ด๋ฉฐ Bytebuffer ํํ๋ก ๋ณํํ์ฌTensorflow-lite ๋ชจ๋ธ์ ์
๋ ฅ๊ฐ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค.
โข
Android 9.0๋ถํฐ๋ ๋ณด์ ์์ ๋ฌธ์ ๋ก http ๊ด๋ จ ํธ์ถ์ ์ฐจ๋จํ๋ฉฐ UnknownServiceException์ด ๋ฐ์ํ๋ค. https๋ก ํธ์ถํ๋ ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐํ ์ ์๋ค.
โข
Moshi๋ ๋์ธ JSON Converter๋ก GSON์ ๋นํด Kotlin ์นํ์ ์ด๋ฉฐ ๋น ๋ฅด๊ณ ์์ ์ ์ด๋ค.
โข
MPAndroidChart ์คํ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํ์ฌ ๋ง๋ ๊ทธ๋ํ, ์ํ ๊ทธ๋ํ, ๊บพ์์ ๊ทธ๋ํ ๋ฑ ๋ค์ํ ๊ทธ๋ํ๋ฅผ ๋ํ๋ผ ์ ์๋ค.