한국의 개발자들을 위한 Google for Developers 국문 블로그입니다.
Android Developer Challenge: On-Device Machine Learning과 개발자의 힘으로 구현되는 유용한 혁신 챌린지에 도전하세요
2019년 11월 20일 수요일
게시자: Android 팀 (
블로그 원문은
이곳
에서 확인하실 수 있습니다)
개발자 여러분이 Android의 방향을 결정하여 Android 혁신의 물결을 일으키는 데 중요한 역할을 해주셨습니다. 그것이 바로 우리가 10여 년 전에 Android용 SDK를 처음 출시할 때 모범이 되는 앱에 적절한 보상을 하고 개발자가 해결하고픈 사용자 문제가 무엇인지 우리에게 보여주는 데 도움이 되는 방법인 Android Developer Challenge를 동시에 발표한 이유였습니다. Android가 ML, 5G, Foldable 폰 등과 같이 새롭게 떠오르는 영역으로 그 경계를 계속 넓혀감에 따라, 우리는 소비자 환경에 활기를 불어넣어 이처럼 새로운 미개척 분야를 정의하는 데 있어 개발자 여러분의 도움이 절실히 필요합니다.
그래서
우리는 Android Developer Challenge를 다시 제안하며
개발자 여러분이 Android에서 새로운 환경을 개척하고 이렇게 새롭게 부상하는 기술에 관해 다른 개발자에게 영감을 주는 데 도움을 주십사 부탁립니다.
우리가 이 Challenge를 시작하면서 집중할 첫 번째 영역은 On-Device Machine Learning입니다. 이 새로운 기술이 생각지도 못한 방식으로 세상에 많은 도움이 되는 혁신을 불러 일으킬지를 확신합니다.
Live Captions
에 대해 들어보셨나요? Live Captions는 청각 장애가 있거나 청력이 거의 손상된 약 5억 명의 사람들이 생활 속에서 다채로운 콘텐츠에 더 쉽게 접근할 수 있게 해줍니다. 이런 것이 바로 우리가 훗날 언젠가 더 많은 사례를 보게 되기를 기대하는 종류의 머신러닝을 통한 혁신이며, 개발자 여러분의 도움으로 막연한 훗날이 아닌 오늘 바로 그런 혁신을 실현할 수 있습니다!
수십억 지구촌 이웃의 눈앞에서 참신한 아이디어 실현
좋은 아이디어가 있으세요? 그저 개념 수준의 아이디어든 사용자에게 공개할 준비가 된 아이디어든, Google의 도움을 이용할 수 있는 방법과 Google이 머신러닝을 사용하여 사람들이 어떤 과제를 해결하는 데 도움을 준다는 사명을 뒷받침하는 방식에 대해 말씀해 주세요. GitHub에서 #AndroidDeveloperChallenge라는 주제에 참여하여 여러분의 아이디어를 이 주제 아래에 저장소로 공유해 주세요. 잊지 말고
여기
로 다시 돌아와서 해당 개념을 공식적으로 제출해 주세요.
여러분이 제출한 개념 중 10개를 선정해 선정된 개발자가 아이디어의 결실을 맺기 위한 계획에 도움이 되도록 관련 전문 지식과 안내를 제공해 드리겠습니다. 일단 앱이 준비되면 우리가 컬렉션 등을 통해 Google Play에서 수십억의 사용자 앞에 선보일 수 있도록 도와드리겠습니다. 다음은 선정된 10인의 개발자에게 주어지는 혜택입니다.
전문 지식 및 개발 지원 부트캠프
우리는 선정된 개발자와 함께 힘을 합쳐 개념 단계에서 실현 단계까지 앱 개발을 진행하기 위한 계획에 전문 지식과 안내를 통해 도움을 드릴 것이며, 다음 사항이 포함됩니다.
캘리포니아 마운틴 뷰의 Google 본사에서 전문가 패널을 모시고 진행되는 실무 세션(경비 지원)
부트캠프에서 Google 엔지니어의 멘토링을 통해 앱에 대한 아이디어가 결실을 맺도록 할 계획을 세우는 데 도움이 될 안내와 기술적 전문 지식 제공
노출 기회를 통한 인지도 상승
아이디어를 앱으로 실현하여 출시할 준비가 되면 선정된 개발자가 사용자를 확보하고 더욱 광범위한 Android 커뮤니티에서 축하받으며 인지도를 높일 기회를 얻도록 도와드리며, 다음 사항이 포함됩니다.
Google Play의 컬렉션을 통해 선정된 앱을 특별히 소개(앱은 5월 1일에 Google Play에 출시할 수 있도록 준비해야 하고 Google의 최소 품질 요구사항을 충족해야 함)
Google I/O 2020 입장권
developers.android.com을 통해 더욱 광범위한 Android 개발자 커뮤니티에 선정된 앱을 널리 알려 이처럼 특별한 경험을 축하하고 기념해 드리겠습니다. 더 나아가 Google I/O에서 진행되는 샌드박스, 세션, 심지어는 기조연설과 같은 특별한 기회에 선정된 개발자를 소개해 드릴 수도 있습니다!
유용한 혁신은 우리 Android 팀으로선 중요한 투자 분야이며, On-Device Machine Learning이 지난 여러 차례의 Android 릴리스에서 새로운 기능을 구현하는 데 결정적인 역할을 했습니다. 개발자 여러분이 만드실 다양한 아이디어를 기대하고 있겠습니다!
참여하러가기>>
자바 친화적 코틀린 코드 작성하기
2019년 11월 19일 화요일
<블로그 원문은
이곳
에서 확인하실 수 있으며 블로그 번역 리뷰는 김태호(Google)님이 참여해 주셨습니다>
TL:DR: 새롭게 선보이는
자바 친화적 Kotlin 코드랩
을 통해 코틀린 및 자바 언어 모두에서 매끄럽게 작동하는 코틀린 코드를 작성하는 방법을 알아보세요.
코틀린을 안드로이드의
공식 지원 언어
로 추가하기로 발표한 이래, 코틀린 코드를 작성시
단계별 접근 방식
을 사용하기를 권장해왔습니다. 이는 코틀린으로 테스트 코드 및 새로운 기능을 작성한다는 의미로, 이 경우 일반적으로 자바 코드에서 코틀린 코드를 호출하게 됩니다.
새로운 라이브러리가 추가되고 기존 라이브러리가 코틀린으로 변환됨에 따라, 자바 코드에서 코틀린 코드를 호출하는 일이 점점 흔해지게 됩니다.
자바 친화적 Kotlin 코드랩
에서는 자바로 작성된 라이브러리를 코틀린으로 리팩터링한 샘플 앱을 보여줍니다. 이 라이브러리는 싱글톤 Repository, 데이터 클래스(data class), 코틀린 확장 함수를 포함합니다. 그런 다음, 우리는 기존 자바 코드를 리팩터링할 필요가 없도록 새로 만든 코틀린 코드를 바꾸는 방법을 다룹니다. const 키워드와 같은 Kotlin 기능과 @JvmName, @JvmStatic, @JvmOverrides와 같은 주석을 사용하는 방법과 시점도 함께 살펴봅니다.
자바 친화적 Kotlin 코드랩
으로 시작하면 Kotlin과 자바 프로그래밍 언어에서 모두 매끄럽게 동작하는 코틀린 코드를 자신 있게 작성하실 수 있을 것입니다.
개발하신 코드를 코틀린으로 변환하기 시작했나요? 자바 코드에서 코틀린 코드를 호출할 때 어떤 문제가 있었나요?
코루틴에서 두 차례의 연속적인 LiveData 내보내기 테스트 방법을 소개합니다
2019년 11월 19일 화요일
<블로그 원문은
이곳
에서 확인하실 수 있으며 블로그 번역 리뷰는 노현석(Android GDE)님이 참여해 주셨습니다>
이 글은 오픈소스
Plaid 애플리케이션
에서 코루틴의 CoroutineDispatcher를 일시 중지했다가 다시 시작하여 두 차례의 연속적인 LiveData 내보내기를 단위 테스트한 방법에 관한 글입니다.
테스트가 정확하고 빠르고 신뢰할 수 있도록 하려면 이 글의 끝 부분에 있는 모범 사례 섹션을 확인해보세요 .
문제
우리는 두 차례의 연속적인 LiveData 내보내기(그중 하나는 코루틴에서 실행됨)를 테스트하고 싶었지만, 모든 코루틴을 즉시 실행하는
Dispatchers.Unconfined
주입으로는
불가능했습니다. 이 때문에 우리가 단위 테스트에서 내보내기를 단언할 수 있게 될 무렵에는 첫 번째 LiveData 내보내기는 놓치고 두 번째 내보내기만 확인할 수 있었습니다. 더 자세한 설명이 이어집니다.
< Plaid의 Dribbble Shot 세부 정보 화면
Dribbble
(Plaid의 데이터 소스 중 하나) 세부 정보 화면에서, 우리는 화면을 최대한 빠르게 표시하고 싶었지만 (마크다운을 Spannable로 변경하는 데 시간이 걸리는 바람에) 화면을 표시하기까지 몇몇 요소가 처리에 시간이 걸릴 수 있었습니다. 이 문제를 해결하기 위해, 우리는 UI 상태의 단순화된 버전을 빠르게 내보낸 다음, 백그라운드 작업을 시작하여 처리된 버전을 생성한 후 내보내기로 결정했습니다.
이를 위해 우리는 LiveData와 코루틴을 사용하는데, UI 통신에는 LiveData, 주 스레드에서 벗어나 작업을 수행하는 데는 코루틴을 사용합니다. ViewModel이 시작되면 기본 UI 모델을 UI가 구독하는 LiveData로 내보냅니다. 그런 다음, 실행을 백그라운드로 이동하고 완전한 UI 모델을 생성하는
CreateShotUiModel UseCase
를 호출합니다. UseCase가 끝나면 ViewModel이 완전한 UI 모델을 이전과 동일한 LiveData로 내보냅니다. 아래 코드에서 이런 과정을 확인할 수 있습니다.
코드보기
>>
우리는 두 UI 상태가 모두 UI로 내보내졌는지 테스트하고자 합니다. 하지만 두 UI 상태가 연속으로 내보내지고 LiveData 인스턴스에는 두 번째 값만 포함되어 있었기 때문에 첫 번째 값을 확인할 수 없었습니다. 테스트에서 주입되는
Dispatchers.Unconfined
로 인해 processUiModel에서 시작된 코루틴이 동기적으로 실행되는 바람에 이런 일이 일어났습니다.
Plaid는
CoroutinesDispatcherProvider
라는 클래스를 사용하여 코루틴과 함께 작동하는 클래스에 코루틴 Dispatcher를 주입합니다.
LiveData는
마지막으로 받는 값
만 유지합니다. 테스트에서 LiveData의 내용을 테스트하기 위해, 우리는
LiveData.getOrAwaitValue()
확장 함수를 사용합니다.
우리의 요구사항이 적용된 다음 단위 테스트가 실패합니다.
코드보기>>
이 동작을 어떻게 테스트할 수 있을까요?
해결 방법
우리는 ViewModel이 생성한 코루틴의 CoroutineDispatcher를 일시 중지했다가 계속할 수 있도록 코루틴 라이브러리(kotlinx.coroutines.test 패키지)에서 새로운
TestCoroutineDispatcher
를 사용했습니다.
( Disclaimer
: TestCoroutineDispatcher는 아직 실험 중인 API입니다. )
TestCoroutineDispatcher의 주입된 인스턴스를 사용해 코루틴이 실행을 시작하는 시점을 제어할 수 있습니다. 테스트 로직은 다음과 같습니다.
테스트가 시작되기 전에 디스패처를 일시 중지하고 ViewModel 초기화 중에 빠른 결과가 내보내졌는지 확인합니다.
ViewModel에서 processUiModel 메서드의 코루틴을 시작하는 테스트 Dispatcher를 재개합니다.
느린 결과가 내보내졌는지 확인합니다.
코드보기>>
여기
를 통해 테스트에서 주입된
CoroutinesDispatcherProvider
사이의 차이점을 확인하세요.
우리는 테스트 본문과 단언을 testCoroutineDispatcher.
runBlockingTest
본문 람다 내에 포함하는데, 그 이유는 이 람다가
runBlocking
과 유사하게 testCoroutineDispatcher를 동기적으로 사용하는 코루틴을 실행하기 때문입니다.
부인 2 (원문 : Disclaimer)
: 모든 테스트마다 TestCoroutineDispatcher를 설정하고 해제해야 하는 상황을 피하기 위해, 다른
테스트
에서 사용하는 것처럼 이
JUnit 테스트 규칙
을 사용할 수 있습니다.
다른 접근 방식
이 문제를 해결하기 위해 선택할 수 있는 다른 방법이 있습니다. 우리는 이 문제에 직면할 때 최선의 방안이라 생각하는 방법을 선택했는데, 이 방법은 애플리케이션 코드를 변경할 필요가 없기 때문이었습니다.
다른 구현 방법은 ViewModel에서 새로운
liveData 코루틴 빌더
를 사용하여 두 개의 항목을 내보내고, 테스트에서는
LiveData.asFlow()
확장 함수를 사용하여
이 PR
에서 볼 수 있듯이 해당 요소를 확인할 수 있습니다. 이 접근 방식은 테스트에서 디스패처 중지하지 않고 테스트를 구현에서 분리하는 데 도움이 되지만, Lifecycle 코루틴 extension에서 제공되는 최신 API를 사용하려면 ViewModel 구현을 변경해야 합니다.
모범 사례
정확하고 빠르고 신뢰할 수 있는 테스트를 위해서는 다음과 같이 해야 합니다.
항상 Dispatcher를 주입하세요!
테스트에 TestCoroutineDispatcher를 사용할 수 있도록 ViewModel에 Dispatcher가 주입되지 않았다면 우리가 문제를 해결하지 못했을 것입니다.
모범 사례에 따라,
Dispatcher를 사용하는 클래스에는 항상 Dispatcher를 주입
하세요. 클래스에서 직접 코루틴 라이브러리(예: Dispatchers.IO)와 함께 제공되는 미리 정의된 Dispatcher를 사용하면 이를 종속성으로 전달해 테스트가 더 어려워지므로 이런 Dispatcher를 사용하면 안 됩니다.
아래 코드에서 보는 것처럼, 어떤 클래스에서든 직접 사용되는 Dispatcher가 보일 경우 이는 코드 스멜입니다.
코드보기>>
특히
AAC ViewModel
과 Dispatchers.Main을 기본으로 설정된 viewModelScope의 사용에 관해 얘기할 때는 이를 주입하는 대신 재정의해야 합니다. 우리는 다른 클래스에 주입되는 동일한 TestCoroutineDispatcher 인스턴스와 함께
이 JUnit 규칙
을 사용하여 재정의합니다.
예시는 여기
에서 확인하세요. 이에 관해 더 자세히 알아보려면
viewModelScope
에 관한
기사
를 읽어보세요.
Dispatchers.Unconfined 대신 TestCoroutineDispatcher 주입
TestCoroutineDispatcher
의 인스턴스를 클래스에 주입하고
runBlockingTest
메서드를 사용하여 테스트에서 그 디스패처를 동기적으로 사용하는 코루틴을 실행하세요. 또한 코루틴을 원하는 대로 계속하고 일시 중지할 수 있도록 하려면 TestCoroutineDispatcher를 사용할 수도 있습니다.
일반적으로는 미리 정의된 세 Dispatcher(예 : Main, Default, IO)에 동일한 TestCoroutineDispatcher 인스턴스를 주입합니다. 멀티 스레드 시나리오에서 작업 타이밍을 확인해야 할 경우(예: 동시에 실행 중인 코루틴의 순열을 테스트하고 싶음), 미리 정의된 Dispatcher마다 다른 TestCoroutineDispatcher 인스턴스를 만들어 주입하세요.
Dispatchers.Unconfined는 어떤가요?
코루틴 내에서 코드를 동기적으로 실행하는 경우 테스트를 위해 Dispatchers.Unconfined를 주입할 수도 있습니다(kotlinx-coroutines는 현재 이것을 테스트에 사용함). 하지만 Unconfined는 TestCoroutineDispatcher보다 유연성이 떨어집니다. Unconfined를 일시 중지할 수 없고 즉각적인 디스패치로 제한됩니다.
또한 Unconfined는 다른 디스패처를 사용하는 코드에 대한 가정과 타이밍도 위반합니다. 이 점은 병렬 계산을 테스트할 때 더욱 현저히 드러나는데, 예를 들어 계산은 자신이 작성된 다른 계산에서 실행되고 다른 시간에 끝나는 그러한 계산의 다른 순열은 테스트할 수 없습니다.
Unconfined와 TestCoroutineDispatcher는 둘 다 명시적으로 병렬 실행을 피합니다. 하지만 TestCoroutineDispatcher를 통해 일시 중지된 모드에서 동시 실행 순서를 좀 더 강력하게 제어할 수 있지만, 그것만으로는 모든 순열을 테스트하기에 충분치 않습니다. 여기서는 일반적인 테스트 조언이 적용되는데, 복잡한 동시 실행 동작을 할 경우 테스트 가능성을 염두에 두고 설계해야 합니다.
LiveData 테스트
LiveData 테스트에 관한 더 많은 모범 사례는
Jose Alcerreca
의
이 주제에 관한 게시물
을 확인해 보세요.
이 변경 사항에 대한 전체 Plaid PR을 보려면
여기
를 클릭하세요.
넥슨이 사전 등록에 보상을 도입하여 D-60 리텐션과 수익을 증대시킨 방법
2019년 11월 18일 월요일
넥슨(
Nexon Korea Company
)은 PC 및 모바일에서 다양한 게임을 퍼블리시하고 있는 게임회사로, 모바일 MMORPG
FAITH
를 일본에 출시하였습니다. 출시 직후 초기 설치를 획기적으로 늘리기 위해, 넥슨은 출시 전에 게임을 홍보하고 유저의 수요를 더 빠르게 포착할 수 있는 방법을 모색했습니다.
넥슨의 사전 등록 보상 캠페인
넥슨은 Google Play의 사전 등록 기능을 이용하여 다양한 채널에서 마케팅 캠페인을 진행했습니다. 게이머들이 Google Play에서 게임에 사전 등록하면 특별한 보상을 받을 수 있도록 한 것입니다. 넥슨은 TV 광고, YouTube 인플루언서 캠페인, SNS, 퍼포먼스 마케팅 등 다양한 채널에서 일관된 크리에이티브를 사용하였으며, 출시 전 한달동안 Google Play에서 사전등록한 플레이어에게 보상을 통해 인센티브와 혜택을 제공함으로써 출시까지 플레이어들을 성공적으로 이끌 수 있었습니다.
넥슨의 플랫폼 파트너십팀 김효민 팀장은 “캠페인을 진행하는 각 단계가 명확하고 간단해서 운영하기 편리했습니다. 스토어 애셋과 APK를 준비한 다음 Google Play Console에서 설정하기만 하면 됩니다.”라고 밝혔습니다. 사전 등록 보상으로 지급된 300 다이아몬드(게임 내 통화)는 캠페인을 위한 특별 애셋으로 관리되었기 때문에, 플레이어에게 혜택을 제공할 뿐 아니라 사전 등록 사용자를 식별하여 출시 후 코호트(Cohort) 분석을 통해 성과를 측정할 수도 있었습니다. 게임 출시 당일에는, Google Play에서 사전 등록한 모든 유저들이 설치를 독려하는 알림을 받았습니다.
성과
기존의 넥슨 게임들은 Google Play 사전 등록의 약 50%가 설치로 전환되었으나 사전 등록 보상을 제공한 FAITH의 경우 전환율은 20% 상승했습니다. 뿐만 아니라 Google Play에서 사전 등록한 플레이어가 사전 등록하지 않은 플레이어보다 D-60 잔존률이 50% 가량 높다는 큰 성과를 이끌어냈습니다. 또한 이 플레이어들은 수익화 측면에서도 강력한 지표를 보여줬는데, 사전 등록한 플레이어들의 ARPDAU가 그렇지 않은 플레이어들보다 70% 이상 높았습니다.
넥슨의 김효민 팀장은 “이제 Google Play 사전 등록은 넥슨의 모든 게임 출시에 있어 '필수' 전략입니다. 이전 경험에 비추어보았을때, Google Play 사전 등록은 넥슨이 이용하는 모든 채널 중에서 단연코 가장 효과적인 사전 등록 플랫폼입니다. 특히 오가닉 노출(Organic Impression)과 설치로의 전환에 있어 효과적이었습니다.”라고 말을 이었습니다.
지금 시작하세요
모든 앱/게임 개발자는 사전 등록 캠페인을 운영하고 사전 등록 보상을 제공할 수 있습니다. 바로
지금 사전 등록 캠페인을 시작해보세요
!
ICCV 2019 에서 진행된 구글의 발표들을 소개해드립니다
2019년 11월 6일 수요일
Andrew Helton, Google Research Communications 에디터
컴퓨터 비전에 관한 세계 최고의 컨퍼런스로 손꼽히는
International Conference on Computer Vision 2019
(ICCV 2019)가 대한민국 서울에서 열렸습니다. Google은 컴퓨터 비전 연구의 선도자이자 이 행사의 골드 스폰서로서 200여 명의 구글러가 ICCV 2019에 대거 참석해 40여 회의 연구 발표를 하고 다양한
워크숍
과
가이드
의 조직에 관여하는 등, 강렬한 존재감을 과시했습니다!
부스로 찾아오시면 컴퓨터 비전 분야에서 활발하게 최신의 혁신 기술을 추구하는 연구원들과 자유롭게 대화하고,
MediaPipe
, 새로운
Open Images
데이터세트,
Google 렌즈
용으로 새로 개발된 제품 등의 이면에 숨겨진 기술을 비롯한 최신 연구 성과를 직접 시연해 볼 수 있습니다.
ICCV 2019에서 발표하는 Google 연구에 관한 자세한 내용은 아래에서 확인할 수 있습니다(Google 제휴 연구자는 파란색으로 표시).
조직위원회
소속: Ming-Hsuan Yang(프로그램 의장)
프레젠테이션 목록
듀얼 픽셀을 사용한 단일 카메라 심도 추정 학습
- Rahul Garg
,
Neal Wadhwa
,
Sameer Ansari
,
Jonathan Barron
RIO: 변화하는 실내 환경의 3D 객체 인스턴스 재현지화
- Johanna Wald, Armen Avetisyan, Nassir Navab,
Federico Tombari
, Matthias Niessner
ShapeMask: 형태 정보의 구체화를 통한 새로운 객체의 분할 방법 학습
Weicheng Kuo
,
Anelia Angelova
, Jitendra Malik,
Tsung-Yi Lin
PuppetGAN: 데모에 의한 교차 도메인 이미지 조작
- Ben Usman
,
Nick Dufour
, Kate Saenko,
Chris Bregler
COCO-GAN: 조건부 조정을 통한 파트별 생성
- Chieh Hubert Lin, Chia-Che Chang, Yu-Sheng Chen,
Da-Cheng Juan
,
Wei Wei
, Hwann-Tzong Chen
제한 없는 엔드-투-엔드 텍스트 스포팅을 향해
- Siyang Qin
,
Alessandro Bissaco
,
Michalis Raptis
,
Yasuhisa Fujii
,
Ying Xiao
SinGAN: 단일 자연 이미지에서 생성 모델 학습
- Tamar Rott Shaham,
Tali Dekel
, Tomer Michaeli
스몰 데이터 객체 감지를 위한 생성 모델링
- Lanlan Liu,
Michael Muelly
, Jia Deng,
Tomas Pfister
, Li-Jia Li
MobileNetV3 검색
- Andrew Howard
,
Mark Sandler
,
Bo Chen
,
Weijun Wang
,
Liang-Chieh Chen
,
Mingxing Tan
,
Grace Chu
,
Vijay Vasudevan
,
Yukun Zhu
,
Ruoming Pang
,
Hartwig Adam
,
Quoc Le
S⁴L: 자기 지도 준지도 학습(Self-Supervised Semi-supervised Learning)
- Lucas Beyer
,
Xiaohua Zhai
,
Avital Oliver
,
Alexander Kolesnikov
샘플링 없이 근사적 분산 전파를 사용한 인식 불확실성 추정
- Janis Postels, Francesco Ferroni, Huseyin Coskun, Nassir Navab,
Federico Tombari
미분 가능 이미지 변환을 위해 선형화된 다중 샘플링
- Wei Jiang, Weiwei Sun,
Andrea Tagliasacchi
,
Eduard Trulls
, Kwang Moo Yi
포스터 프레젠테이션
ELF: 미리 훈련된 CNN에 삽입된 기능의 현지화
- Assia Benbihi
,
Matthieu Geist
,
Cedric Pradalier
야외에서 촬영하는 동영상의 심도: 알 수 없는 카메라에서 비지도 단안 심도 학습
- Ariel Gordon
,
Hanhan Li
,
Rico Jonschkowski
,
Anelia Angelova
ForkNet: 단일 심도 이미지에서 다중 분기 볼륨 시맨틱 완성
- Yida Wang,
David Joseph Tan
, Nassir Navab,
Federico Tombari
확장 가능한 벡터 그래픽을 위해 학습된 표현
- Raphael Gontijo Lopes
,
David Ha
,
Douglas Eck
,
Jonathon Shlens
FrameNet: 단일 RGB 이미지에서 3D 표면의 로컬 정규 프레임 학습
- Jingwei Huang
,
Yichao Zhou
,
Thomas Funkhouser
,
Leonidas Guibas
부분 지도 다중 기관 구분을 위한 사전 인식 신경망
- Yuyin Zhou,
Zhe Li
, Song Bai, Xinlei Chen, Mei Han, Chong Wang, Elliot Fishman, Alan Yuille
무한: 이미지 확장을 위한 생성적 적대 신경망
- Dilip Krishnan
,
Piotr Teterwak
,
Aaron Sarna
,
Aaron Maschinot
,
Ce Liu
,
David Belanger
,
William Freeman
Cap2Det: 객체 감지를 위한 약한 캡션 지도 증폭 학습
- Keren Ye, Mingda Zhang, Adriana Kovashka, Wei Li,
Danfeng Qin
, Jesse Berent
NOTE-RCNN: 준지도 객체 감지를 위한 NOise Tolerant Ensemble RCNN(NOTE-RCNN)
- Jiyang Gao,
Jiang Wang
,
Shengyang Dai
,
Li-Jia Li
, Ram Nevatia
단일 이미지에서 객체 기반 다중 계층 장면 분해
- Helisa Dhamo, Nassir Navab,
Federico Tombari
Guided Complement Entropy(GCE)를 통한 적대 견고성 향상
- Hao-Yun Chen, Jhao-Hong Liang, Shih-Chieh Chang,
Jia-Yu Pan
,
Yu-Ting Chen
,
Wei Wei
,
Da-Cheng Juan
XRAI: 지역을 통한 더 나은 특성
- Andrei Kapishnikov
,
Tolga Bolukbasi
,
Fernanda Viegas
,
Michael Terry
SegSort: 시맨틱 구분을 위한 세그먼트 정렬
-
Jyh-Jing Hwang, Stella Yu, Jianbo Shi,
Maxwell Collins
, Tien-Ju Yang, Xiao Zhang,
Liang-Chieh Chen
단안 비디오의 기하학적 제약 조건을 이용한 자기 지도 학습: 흐름, 심도 및 카메라 연결
- Yuhua Chen
,
Cordelia Schmid
,
Cristian Sminchisescu
VideoBERT: 동영상 및 언어 표현 학습을 위한 공동 모델
- Chen Sun
,
Austin Myers
,
Carl Vondrick
,
Kevin Murphy
,
Cordelia Schmid
객체 감지의 모호성과 시각 데이터의 6D 포즈 설명
- Fabian Manhardt, Diego Martín Arroyo, Christian Rupprecht, Benjamin Busam, Tolga Birdal, Nassir Navab,
Federico Tombari
교차 도메인 시맨틱 구분을 위한 자기 동기 부여 피라미드 커리큘럼 구성
- Qing Lian, Lixin Duan, Fengmao Lv,
Boqing Gong
구조화된 암시적 함수를 사용한 형태 템플릿 학습
- Kyle Genova
,
Forrester Cole
,
Daniel Vlasic
,
Aaron Sarna
,
William Freeman
,
Thomas Funkhouser
비전 및 언어 탐색에서 전송 가능한 표현 학습
- Haoshuo Huang
,
Vihan Jain
,
Harsh Mehta
,
Alexander Ku
,
Gabriel Magalhaes
,
Jason Baldridge
,
Eugene Ie
구조적으로 계층화된 동영상 분해를 위해 제어 가능한 어텐션
- Jean-Baptiste Alayrac
,
Joao Carreira
,
Relja Arandjelović
,
Andrew Zisserman
Pixel2Mesh++: 변형을 통한 다중 뷰 3D 메시 생성
- Chao Wen,
Yinda Zhang
, Zhuwen Li, Yanwei Fu
로컬 설명자를 위한 직교좌표 표현을 넘어
- Patrick Ebel, Anastasiia Mishchuk, Kwang Moo Yi, Pascal Fua,
Eduard Trulls
도메인 임의 지정 및 피라미드 일관성: 대상 도메인 데이터에 액세스하지 않고 실제와 흡사한 일반화 시뮬레이션 구현
- Xiangyu Yue, Yang Zhang, Sicheng Zhao, Alberto Sangiovanni-Vincentelli, Kurt Keutzer,
Boqing Gong
동영상용으로 진화하는 공간-시간 신경 아키텍처
- AJ Piergiovanni
,
Anelia Angelova
,
Alexander Toshev
,
Michael Ryoo
사람 형상 만들기: 단일 이미지에서 비 파라메트릭 3D 인간 형상 추정
- Valentin Gabeur
, Jean-Sebastien Franco, Xavier Martin,
Cordelia Schmid
, Gregory Rogez
다중 뷰 이미지 융합
- Marc Comino Trinidad,
Ricardo Martin-Brualla
,
Florian Kainz
,
Janne Kontkanen
EvalNorm: 평가를 위한 배치 정규화 통계 추정
- Saurabh Singh
, Abhinav Shrivastava
어텐션 증강 컨볼루션 네트워크
- Irwan Bello
,
Barret Zoph
,
Quoc Le
,
Ashish Vaswani
,
Jonathon Shlens
패치 작업: 동영상 스트림에서 효율적인 객체 감지와 구분을 위한 패치식 어텐션 네트워크
- Yuning Chai
워크숍
저전력 컴퓨터 비전
- 주최자:
Bo Chen 등
신경 아키텍트
- 주최자:
Barret Zoph
등
제3차 YouTube-8M 대규모 동영상의 이해 워크숍
- 주최자:
Paul Natsev
,
Cordelia Schmid
,
Rahul Sukthankar
,
Joonseok Lee
,
George Toderici
등
컴퓨터 비전에서 실험을 미리 등록해야 합니까?
- 주최자:
Jack Valmadre
등
익스트림 비전 모델링
- 주최자:
Rahul Sukthankar
등
공동 COCO 및 Mapillary 인식 도전
- 주최자:
Tsung-Yi Lin
,
Yin Cui
등
공개 이미지 도전
- 주최자:
Vittorio Ferrari
,
Alina Kuznetsova
,
Rodrigo Benenson
,
Victor Gomes
,
Matteo Malloci
등
가이드
메타 러닝 및 메트릭 러닝 알고리즘 - 주최자:
Kevin Swersky
등
Contents
ML/Tensorflow
Android
Flutter
Web/Chrome
Cloud
Google Play
Community
Game
Firebase
검색
Tag
인디게임페스티벌
정책 세미나
창구프로그램
AdMob
AI
Android
Android 12
Android 12L
Android 13
Android 14
Android Assistant
Android Auto
Android Games
Android Jetpack
Android Machine Learning
Android Privacy
Android Studio
Android TV
Android Wear
App Bundle
bootcamp
Business
Chrome
Cloud
Community
compose
Firebase
Flutter
Foldables
Game
gdg
GDSC
google
Google Developer Student Clubs
Google Play
Google Play Games
Interview
Jetpack
Jetpack Compose
kotlin
Large Screens
Library
ma
Material Design
Material You
ML/Tensorflow
mobile games
Now in Android
PC
Play Console
Policy
priva
wa
wear
Wearables
Web
Web/Chrome
Weeklyupdates
WorkManager
Archive
2024
9월
8월
7월
6월
5월
4월
3월
2월
1월
2023
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2022
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2021
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2020
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2019
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2018
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2017
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2016
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2015
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2014
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2013
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2012
12월
11월
10월
9월
8월
7월
6월
5월
3월
2월
1월
2011
12월
11월
Feed