2. Background
- 채팅 및 메시징 서비스의 특성상 광고 , 스팸 , 불건전한 메시지가 존재
- Text 데이터는 자동 필터링 시스템을 구축 하여 메시지를 필터링
- 최근에 텍스트로 검출 할수 없는 이미지관련 광고 및 불건전 데이터가 증가
광고 및 불건전한
이미지 데이터도
필터링 하는 좋은
방법이 없을까?
7. Function(OCR)
TEXT_DETECTION 을 이용하면 이미지에서 Text 를 추출 하여 흥보 및 광고성 Text 인지 분석할수 있다.
!!
textAnnotations 의 description 값 이용
{"textAnnotations":[{"locale":"ko","description":"조건만남 " ….
10. 개발 순서
- google 개발자 콘솔에서 인증 파일을 생성 한다. (api 통신용)
- Google 개발자 콘솔에서 vision api 를 활성화 시킨다.
- https://cloud.google.com/vision/docs/ 를 학습 한다.
- golang 으로 관련 기능을 구현한다.
(https://github.com/kaneshin/pigeon 활용)
11. Code
import "github.com/kaneshin/pigeon"
import "github.com/kaneshin/pigeon/credentials"
…
// 인증파일은 구글 개발자 콘솔에서 생성하고 다운 받을수 있음
creds := credentials.NewApplicationCredentials(“인증 파일 경로”)
config := pigeon.NewConfig().WithCredentials(creds)
client, err := pigeon.New(config)
…
batch, err := client.NewBatchAnnotateImageRequest(요청 이미지 url 배열, pigeon.SafeSearchDetection, pigeon.TextDetection)
...
res, err := client.ImagesService().Annotate(batch).Do()
…
res. Responses 값을 파싱하여 사용하면 된다. (JSON)
12. 서비스 적용후기
- 분석이라는 것은 100% 완벽하지 않다. 그래도 쓸만은 하다.
(가끔 OCR 추출 못하거나 adult 의 Likelihood 가 합당?하지 않을때가 있다 )
- 구글 개발자 콘솔에서 request limit 제한 설정 할 수 있다. (지나친 과금 제한 )
- API 사용이 심플하고 쉬운 편이다.
- 비교적 적은 비용으로 구글의 매력적인 딥러닝 기술을 서비스에 적용해 볼 수
있다.
(비용은 상대성이긴 하지만 ...)