"올해 봄 첫걸음을 내디딘 AI해커톤을 기억하시나요?"
약 한달간의 여정동안 여러분들의
치열한 고민과 열정이 있었기에 두번째 AI Hackathon 으로 찾아올 수 있었습니다.
그래서 이번 해커톤은 더 흥미로운 AI Vision 주제를 가지고 더 풍성한 자리를 마련했습니다.
네이버 AI 해커톤 2018은 네이버의 클라우드 머신러닝 플랫폼인 NSML과 함께 합니다.
NSML(Naver Smart Machine Learning)은 모델을 연구하고 개발하는 데 필요한 복잡한 과정을 대신 처리해주어
연구 개발자들이 "모델 개발"에만 전념할 수 있고, 다양한 시도를 쉽게 할 수 있는 창의적인 환경을 제공할 것입니다.
지금 바로 네이버 AI 해커톤 2018에 참여해서
서로의 경험을 공유하고, 다양하고 창의적인 방법으로 문제를 해결해 보세요!
“ Competition? It’s not competition Coorperation! ”
AI Hackathon에서 세상을 변화시킬 비전을 기다립니다.
AI로 문제를 해결하는 데 관심 있는 분이라면 누구나 참가 신청할 수 있습니다.
개인 또는 팀(최대 3명)으로 참가 가능합니다. 신청폼 으로 참가 신청하세요!
일정 | 기간 | 장소 |
---|---|---|
참가 신청 ~2018년 12월 30일(일) |
약 2주 | 접수 마감 |
예선 1라운드 2019년 1월 2일(수) ~ 1월 16일(수) 23:59:59 |
약 2주 |
온라인 https://hack.nsml.navercorp.com |
예선 2라운드 2019년 1월 23일(수) 14:00 ~ 2월 8일(금) 16:00 |
약 16일 |
온라인 https://hack.nsml.navercorp.com |
결선(온라인) 2019년 2월 12일(화) 14:00 ~ 2월 20일(수)16:00 |
약 9일 |
온라인 https://hack.nsml.navercorp.com |
결선(오프라인) 2019년 2월 21일(목) ~ 2월 22일(금) |
1박 2일 |
네이버 커넥트원(춘천) |
※ 예선 및 결선 참가자에게는 개별로 참가 안내드립니다.
결선 참가자는 네이버 본사(그린팩토리, 분당)에 모여서 커넥트원(춘천)으로 함께 이동하며
네이버 본사 - 커넥트원 간 이동 차량 및 결선 기간 중 숙식, 간식 등을 제공합니다.대회종료
순위 팀명 1위 Cheat_Key 팀 2위 Resource_exhausted 팀 3위 snu_CherryPickers 팀
※ 모든 미션은 NSML 플랫폼을 사용해 해결합니다.
NSML을 통해 미션을 해결하는 방법은 이 튜토리얼을 참고해 주세요.
예선 1차는 소규모의 라인프렌즈 상품 데이터를 이용한 image retrieval challenge 입니다. Training data를 이용하여 image retrieval model을 학습하고, test시에는 각 query image(질의 이미지)에 대해 reference images(검색 대상 이미지) 중에서 질의 이미지에 나온 상품과 동일한 상품들을 찾아야 합니다.
Training data는 각 class(상품) 폴더 안에 그 상품을 촬영한 이미지들이 존재합니다.
Test data는 query image와 reference image로 나뉘어져 있습니다.
예선 2차 / 결선(온라인, 오프라인)은 대규모의 일반 상품 데이터를 이용한 image retrieval challenge 입니다. 예선 1차와 같은 방식이지만, 데이터의 종류가 라인프렌즈로 한정되어 있지 않고, 데이터의 개수가 상대적으로 많습니다.
Training data는 각 class(상품) 폴더 안에 그 상품을 촬영한 이미지들이 존재합니다.
Test data는 query image와 reference image로 나뉘어져 있습니다.
※ 예선 2차와 결선(온라인)에서는 전체 test data의 query images 중 50%만으로 순위를 결정합니다. 결선(오프라인)에서 나머지 50%를 포함하여, 전체 test data로 최종 순위를 결정합니다.
예선 1차, 예선 2차, 결선(온라인, 오프라인) 모두 동일합니다.
|-- train
|-- train_data
|-- 1141 # 상품 ID
|-- s0.jpg
|-- s1.jpg
|-- s2.jpg
...
|-- 1142 # 상품 ID
|-- s0.jpg
|-- s1.jpg
|-- s2.jpg
...
...
|-- test
|-- test_data
|-- query # 질의 이미지 폴더
|-- s0.jpg
|-- s1.jpg
|-- s2.jpg
...
|-- reference # 검색 대상 이미지 폴더
|-- s0.jpg
|-- s1.jpg
|-- s2.jpg
...
...
※ 폴더 이름은 위와 같지만, 파일 이름은 위 예시와 다를 수 있습니다.
For the retrieval task, we use the Recall@K metric. Each test image (query) first retrieves K nearest neighbors from the test set and receives score 1 if an image of the same class is retrieved among the K nearest neighbors and 0 otherwise. Recall@K averages this score over all the images.
tf.data.Dataset
in TensorFlow, ImageDataGenerator
in Keras, DataLoader
in PyTorchnsml/ml:cuda9.0-cudnn7-tf-1.11torch0.4keras2.2
실행법
https://hack.nsml.navercorp.com/download 에서 플랫폼에 맞는 nsml을 다운받습니다.
nsml run
명령어를 이용해서 main.py
를 실행합니다.
$ nsml run -d ir_ph1_v2 -e main.py
제출하기
$ nsml model ls [session]
$ nsml submit [session] [checkpoint]
web 에서 점수를 확인할수있습니다.
Submit을 하기위해서는 infer()
함수에서 [다음]과 같이 return 포맷을 정해줘야합니다.
대략적인 형태는 아래와 같습니다.
[
(0, ('query_0', ['refer_12', 'refer_3', 'refer_35', 'refer_87', 'refer_152', 'refer_2', ...])),
(1, ('query_1', ['refer_2', 'refer_25', 'refer_13', 'refer_7', 'refer_64', 'refer_243', ...])),
...
]
(0, ('query_0', ['refer_12', 'refer_3', 'refer_35', 'refer_87', 'refer_152', 'refer_2', ...]))
tuple
('query_0', ['refer_12', 'refer_3', 'refer_35', 'refer_87', 'refer_152', 'refer_2', ...])
tuple
query_0
는 query 이미지 test_data/query/query_0.jpg
에서 확장자를 뺀 파일명입니다.refer_12
는 reference 이미지 test_data/reference/refer_12.jpg
에서 확장자를 뺀 파일명입니다.['refer_12', 'refer_3', 'refer_35', 'refer_87', 'refer_152', 'refer_2', ...]
은 모든 reference 이미지들을 query_0
와 가까운 순으로 정렬한 list입니다. (검색 결과의 ranking list)※ 1 NSML 크레딧으로 NSML GPU를 1분 사용할 수 있습니다.
10 NSML 크레딧 = GPU 1개 10분 = GPU 2개 5분 사용※ 예선, 결선 진출자는 개별 안내 드립니다.
Copyright 2018 NAVER Corp.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
associated documentation files (the "Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial
portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.