colornet

흑백사진을 컬러사진으로 바꿔주는 기술은 이제 새삼스런 영역은 아닙니다. 포토샵을 통해서 하는 경우도 있고 많은 사진들이 이미 복원하는 과정들로 공개가 되었습니다.

colornet은 이런 흑백사진을 컬러로 바꾸는 일들을 neural network 그러니까 AI로 하는 프로젝트입니다!

2016/04/22 Today’s Best ( 680 ★)

pavelgonchar/colornet
_colornet - Neural Network to colorize grayscale images_github.com


이게 사람의 일을 얼마나 줄여주는지 다음의 링크를 타고 들어가서 포토샵을 통해서 할 경우… 의 작업을 살펴보시면 좋을 거 같습니다.

포토샵을 이용해 흑백사진을 컬러사진으로 간단하게 편집하는방법
_포토샵을 이용해 흑백사진을 컬러사진으로 간단하게 편집하기 브러쉬로 투명도를 조절해가며 색칠하는 것보다 더 깔끔하고 어색하지 않게 컬러사진으로 만드는 방법입니다. 오래된 흑백 사진을 컬러사진으로 바꿀 때도 사용하는…_jjang-e.tistory.com

제목이 간단하게라고 되어 있다고 정말 간단하다고 생각하시면 안됩니다.

Colorization - The colorization of old black & white photos * /r/Colorization
_r/Colorization\
is a subreddit that is dedicated to sharing black and white…_www.reddit.com]anchor4anchor5

레딧에는 이런 작업들을 해서 올리는 페이지도 따로 있습니다.

재미있는 결과물들을 긁어와 클리앙에 올린 사람도 있습니다.

클리앙 > 모두의공원 > 흑백사진을 컬러로 복원.jpg
_기술의 발전은 놀라울따름이고… 역사적으로 중요한 사진들도 많네요_www.clien.net

한번 살펴보시면 의미있는사진들이 많이 바뀌어 있는 것도 발견하실 수 있습니다. 링컨이라던지, 베이브루스라던지 말이죠


어떤 기술을 사용했을까요?

Tensorflow는 정말 이제 AI의 프레임워크가 된 것 같습니다.

Automatic Colorization
_Have you seen Reddit’s /r/colorization sub? People use photoshop to add color to old black and white photos. This is a…_tinyclouds.org

16-layer model from the arXiv paper: “Very Deep Convolutional Networks for Large-Scale Image Recognition”

이른바 VGG_ILSVRC_16_layers 라고 불리는 16레이어 모델을 Tensorflow 모델로 바꾸는 작업을 한 것입니다.

읽어보시면GPU에 대한 이야기도 자세히 나오는 등. 배울 점이 많습니다.


두렵습니까?

많은 언론에서 일자리가 없어진다느니, 사람의 설 자리가 없어진다는 등의 많은 두려움에 가득찬 이야기를 쏟아 놓습니다. 실제로 일어날 일이기도 하고 기사를 쓰는 로봇이 있기 때문에 더 호들갑일지도 모르겠습니다.

하지만 저는 오늘 같은 프로젝트를 보다보면 사람이 하는 반복적이고 귀찮지만 자동화 하기 어려웠던 지능이 필요했던 부분들에 긍정적으로 사용된다면 사람이 조금 더 높은 수준의 고민을 할 수 있게 도와줄 수 있는 좋은 세상이 올 것이라는 확신이 더 듭니다.


http://imgur.com/a/OfoG5

오드리 햅번의 컬러/ 흑백 사진을 끝으로 글을 마무리 합니다.

By Keen Dev on April 21, 2016.

Exported from Medium on May 31, 2017.

agera

https://github.com/google/agera

함수형 프로그래밍 혹은 reactive 프로그래밍에 대한 관심들은 점점 커져가고 요즘은 어떤 작업을 하더라도 reactive programming이 주는 장점들을 많은 부분들에서 가져가려고 애쓰는 것 같습니다.

agera는 구글 play 개발팀이 자신들이 좀 더 android개발을 편하게 하기 위해 내부적인 프로젝트를 진행하다 만든 것을 오픈 소스화한 androdi용 reactive 프로그래밍 프레임워크 입니다.

2016/04/21 Today’s Best ( 1131 ★)

google/agera
_agera - Reactive Programming for Android_github.com

그냥 간단하게는 HTTP Request에 대해서 값을 받는 형식을 쉽게 하려고 시작한 것이 아닌가 생각되며 위키 첫 페이지에도 그 샘플을 설명하고 있습니다.

이 프로젝트를 보며 RxJava 와 다른 점이 무엇일까 생각한 것은 저 뿐만이 아닌 거 같습니다. 깃헙 첫번째 이슈도 그것에 대한 질문이며 개발자들의 대답은 그냥 심플한 라이브러리를 만들었다 정도 인거 같습니다.

Question: what’s the relation to RxJava? * Issue #20 * google/agera
_This looks like a very interesting proposition. My question - it’s quite an elephant in the room, I should think - is…_github.com

React의 여러가지 아키텍처를 따라 한거 같다는 평도 듣고 있네요.


Reactive Programming 이란

In computing, reactive programming is a programming paradigm oriented around data flows and the propagation of change. This means that it should be possible to express static or dynamic data flows with ease in the programming languages used, and that the underlying execution model will automatically propagate changes through the data flow. — wikipedia

손쉽게 얘기하자면 비동기 데이타의 흐름에 따른 프로그래밍을 하는 것을 이야기 합니다. 조금 더 철학 적으로 가자면 설명할 것들이 많겠지만 트렌드에 대한 이야기만 하자면 Javascript 콜백을 처리하는 형태 처럼 데이타의 흐름에 대해서 코드를 쭉 써내려 가는 패턴 혹은 아키텍처라고 보면 될 것 같습니다.

Javascript 아니 Node가 개발 커뮤니티에 던진 충격들과 그 시간적인 흐름 혹은 이슈가 되는 타이밍은 비슷하게 나왔고 유명한 프레임워크로는 Rx시리즈가 있습니다.

ReactiveX
_Edit description_reactivex.io

하지만 사람들이 가장 많이 사용한다 혹은 임팩트 있게 사용하는 툴로는 Angular 혹은 React 가 있습니다. ( 이 프레임워크가 Reactive 를 표방하고 나온 것은 아닙니다!)


그러면 이런 프레임워크들이 없다면 어떻게 콜백 처리 혹은 데이타 흐름을 처리할까요?

보통은 AsyncCallback 인터페이스를 만들고 AsyncTask를 이용해서 처리합니다. 자세한 내용은 다음의 블로그에서 잘 설명해 주고 있습니다.

유지보수를 고려한 안드로이드 비동기 처리 기반 코드 만들기
_안드로이드에서 비동기로 작업을 할 때 사용되는 AsyncTask는 잘 사용하지 않으면, 코드 유지보수를 어렵게 만드는 악의 원천이 될 수 있다. 특히, 많은 안드로이드 입문서들이 AsyncTask를 이용해서 비동…_javacan.tistory.com

최근의 개발 트렌드를 고려해서 android를 좀 더 엣지있게 짜고 싶은 개발자라면 참고하면 좋을 듯 합니다.

By Keen Dev on April 20, 2016.

Exported from Medium on May 31, 2017.