영상 데이터의 처리와 정보의 추출동윤 이2D 컴퓨터비젼에 대한 설명. 영상으로부터 정보를 추출해내는 공학/과학 분과인 컴퓨터비젼의 기술에 대한 쉬운 설명. 파이썬(Python)의 컴퓨터비젼/영상처리 라이브러리인 scikit-image를 주로 활용하였으며 코드를 함께 담음.
R컨퍼런스 발표본 (2014.5.30) 임.
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기Sumin Byeon이 발표는 [야생의 땅: 듀랑고]의 지형 배포 시스템과 생태계 시뮬레이션 자동화 시스템에 대한 이야기를 다룹니다. 듀랑고의 각 섬은 크기와 지형, 기후 조건이 다양하고 섬의 개수가 많아서 수동으로 관리하는 것은 사실상 불가능합니다. 몇번의 사내 테스트와 베타 테스트를 거치면서 이러한 문제를 해결해주는 자동화된 도구의 필요성이 절실해졌고, 작년에 NDC에서 발표했던 생태계 시뮬레이터와 Docker, 그리고 아마존 웹서비스(AWS)를 이용하여 수많은 섬들을 자동으로 생성하고 관리하는 자동화 시스템을 구축하게 되었습니다. 그 과정에서 했던 고민들, 기존의 애플리케이션을 "Dockerizing" 했던 경험, AWS의 각 서비스들을 적절히 활용했던 이야기, AWS의 각 지역별 요금이 상이하다는 점을 이용해서 비용을 절감한 사례, 그리고 자동화 시스템의 문제점과 앞으로의 방향에 대해서 이야기 할 계획입니다.
PyCon 2017 프로그래머가 이사하는 법 2 [천원경매]Sumin Byeon발표 당일에 발표를 결심하는 바람에 아침부터 코엑스로 가는 버스 안에서, 점심 시간과 쉬는 쉬간에 틈틈이 작업하느라 리허설을 한 번밖에 해보지 못해서 발표할 때 거의 슬라이드 노트를 읽다시피 했던 점 넓은 마음으로 양해 부탁드립니다. 마지막 한 문장을 남겨두고 징이 울려서 매우 아쉽네요. 좋은 행사를 만드는데 기여하신 모든 스텝, 발표자 그리고 참가자 분들께 진심으로 감사드립니다. 내년에 또 뵐 수 있었으면 좋겠습니다.
Online game server on Akka.NET (NDC2016)Esun KimThis slide explains implementing online game server using Akka.NET which is an open source library and provides actor model.
게임회사 취업을 위한 현실적인 전략 3가지Harns (Nak-Hyoung) Kim홍익대학교 게임학부 특강 자료입니다. 게임회사의 인턴쉽을 준비하고 있는 학생들을 대상으로, 실제 게임회사가 필요로 하는 인재의 조건을 생각해보고 현실적으로 취업에 도움이 될만한 팁들을 소개합니다.
Custom fabric shader for unreal engine 4동석 김How to implement realistic fabric material by Unreal engine?
This slider shows the way. You can make realistic and physically correct fabric shader by this method.
Luigi presentation NYC Data ScienceErik BernhardssonLuigi is a workflow management system that allows users to build complex data pipelines. It provides tools to define dependencies between tasks, run workflows on Hadoop, and visualize data flows. The speaker describes how they developed Luigi at Spotify to manage thousands of Hadoop jobs run daily for music recommendations and other applications. Key features of Luigi include defining Python tasks, easy command line execution, automatic dependency resolution, and failure recovery through atomic file operations. The speaker demonstrates how Luigi can run multi-step workflows on the command line, including a music recommendation example involving feature extraction, model training, and evaluation.
Deep learning as_WaveExtractor동윤 이Difference between Discriminative Learning and Generative Learning
Cosine distance as a Basic metric of Deep Learning
Multi-layer Perceptron as a common part of Deep Learning Variants
Analogy between Similarity in Deep Learning and Wave Coherence
Deep Neural Net. as a Wave Extractor
Behavior Tree in Unreal engine 4Huey ParkThis document discusses behavior trees, which are commonly used to direct behaviors for AI in games. It provides an overview of behavior tree theory, including the basic components of behavior trees like composites, services, decorators, tasks, and the blackboard. It then discusses behavior trees in Unreal Engine 4 specifically. The document also provides an example of how behavior trees could be used for an airplane dogfighting AI and includes references for further information.
김병관 성공캠프 SNS팀 자원봉사 후기Harns (Nak-Hyoung) Kim3월 중순부터 한달이라는 기간동안 선거운동을 경험하면서 느낀점과 의견들을 정리해 봤습니다. 비전문가의 의견이라 부족한 점이 많고, 선거캠프의 공식적인 입장이나 견해와도 다른 개인의 생각일 뿐입니다.
IT업계가 단기간에 성장을 할 수 있었던 이유는 지식의 공유 문화가 활발했었기 때문이라고 생각합니다. 성공하든 실패하든 자신의 경험을 다른 사람들과 공유하고, 그것을 통해 배움으로써 업계 전체가 빠르게 발전할 수 있었습니다.
정치계에서는 이런 식으로 무언가를 공유하는 문화가 낯설고 걱정도 되시겠지만, 개인적으로는 우리나라 정치권에서도 사소한 지식이라도 문서로 정리되고 공유하는 문화가 만들어 지면 좋겠다고 생각합니다. 그런 문화 속에서 자연스럽게 정치권에 종사하시는 분들이 서로 배우고 성장해, 우리나라의 정치를 더 발전시켜 주실테니까요. 고 노무현 대통령이 대통령 기록실을 만드신 취지도 그런 게 아니었을까 감히 추측해봅니다.
벌써 선거가 끝난 지 한달이 지났고, 저는 다시 일상으로 돌아왔습니다. 그 전과 달라진 게 있다면 정치뉴스란을 좀 더 흥미롭게 읽을 수가 있게 되었다는 정도? 많이 부족한 글이지만 그냥 이런 의견도 있구나 정도로 가볍게 읽어봐 주세요. 감사합니다.
Approximate nearest neighbor methods and vector models – NYC ML meetupErik BernhardssonNearest neighbors refers to something that is conceptually very simple. For a set of points in some space (possibly many dimensions), we want to find the closest k neighbors quickly.
This presentation covers a library called Annoy built my me that that helps you do (approximate) nearest neighbor queries in high dimensional spaces. We're going through vector models, how to measure similarity, and why nearest neighbor queries are useful.
NDC16 스매싱더배틀 1년간의 개발일지Daehoon HanNDC 16에서 발표한 '스매싱더배틀 1년간의 개발일지'라는
제목의 포스트 모템입니다.
PT의 내용은 실제 발표 자료에 조금 더 설명을 붙였으며
PT의 내용에 대한 질문은 아래의 주소를 통해서
문의 부탁드립니다.
Twitter
https://twitter.com/Studio_HG
Facebook
https://www.facebook.com/GameStudioHG
Developing Success in Mobile with Unreal Engine 4 | David StelzerJessica TamsThis document discusses the advantages of using the Unreal Engine 4 (UE4) for game development compared to other game engines like Unity. It notes that UE4 is a complete toolset that supports multi-platform development including PC, console, web, VR/AR and mobile. It has visual scripting using Blueprints that allows artists and designers to code without programming. UE4 also has C++ integration and provides full source code access for free along with flexible licensing options.
Re:Zero부터 시작하지 않는 오픈소스 개발Chris Ohk오픈소스 개발을 시작하기로 결정했더라도, 처음 개발하는 경우에는 막상 무엇을 개발할지, 그리고 어떻게 개발해야 할 지 막막하기만 합니다. 이 때는 기존에 공개되어 있는 오픈소스 프로젝트를 활용해 개선해나가는 프로젝트부터 시작하면 많은 도움이 됩니다. 이번 강연에서는 기존 오픈소스 프로젝트를 처음부터 새로 만들어가면서 개선해나갔던 경험을 이야기하고 어떻게 하면 오픈소스 개발에 쉽게 접근할 수 있는지를 알려줍니다.
Unreal Open Day 2017 Unreal Engine Education & TrainingEpic Games ChinaThis document provides an overview of Unreal Engine's education and training initiatives. It discusses how Unreal Engine became freely available in 2014-2015 for academic, student, and personal use. It outlines Unreal Engine training resources like livestreams, documentation, and community groups. It also highlights several university research projects using Unreal Engine for topics like VR editing, animation, and language learning games. The document promotes Unreal Engine's role in game development and other fields in education.
[IGC2017] 오버턴VR 개발기 -1인 개발 3년차 리포트Daehoon HanIGC 2017과 시작해요 언리얼 2017에서 발표를 한 '오버턴 VR 개발기 - 1인 개발 3년차 리포트' 입니다.
오버턴을 개발하면서 있었던 이야기를 담고 있고
VR 게임을 개발하기 위한 노하우를 최대한 이야기하였습니다.
그러면서 1인 독립 개발을 하면서 느꼈던 점들을
발표하였으니 도움이 되셨으면 좋겠습니다.
피드백은 아래 SNS로 부탁드립니다.
https://twitter.com/Hanguny
How to Make Your Next Game Go BIG | Emmanuel CarraudJessica TamsappChocolate is an independent app studio based in Cambridge, UK. We generated over 50 million downloads and have been #1 in App Store general ranking in over 40 countries for multiple apps. We will share our story with practical tips on how to launch successfully mobile games for independent studios and indie developers including analytics, KPIs, localisation, PR, ASO, monetization, user acquisition, App Store ranking on iOS and Android.
Luigi presentation NYC Data ScienceErik BernhardssonLuigi is a workflow management system that allows users to build complex data pipelines. It provides tools to define dependencies between tasks, run workflows on Hadoop, and visualize data flows. The speaker describes how they developed Luigi at Spotify to manage thousands of Hadoop jobs run daily for music recommendations and other applications. Key features of Luigi include defining Python tasks, easy command line execution, automatic dependency resolution, and failure recovery through atomic file operations. The speaker demonstrates how Luigi can run multi-step workflows on the command line, including a music recommendation example involving feature extraction, model training, and evaluation.
Deep learning as_WaveExtractor동윤 이Difference between Discriminative Learning and Generative Learning
Cosine distance as a Basic metric of Deep Learning
Multi-layer Perceptron as a common part of Deep Learning Variants
Analogy between Similarity in Deep Learning and Wave Coherence
Deep Neural Net. as a Wave Extractor
Behavior Tree in Unreal engine 4Huey ParkThis document discusses behavior trees, which are commonly used to direct behaviors for AI in games. It provides an overview of behavior tree theory, including the basic components of behavior trees like composites, services, decorators, tasks, and the blackboard. It then discusses behavior trees in Unreal Engine 4 specifically. The document also provides an example of how behavior trees could be used for an airplane dogfighting AI and includes references for further information.
김병관 성공캠프 SNS팀 자원봉사 후기Harns (Nak-Hyoung) Kim3월 중순부터 한달이라는 기간동안 선거운동을 경험하면서 느낀점과 의견들을 정리해 봤습니다. 비전문가의 의견이라 부족한 점이 많고, 선거캠프의 공식적인 입장이나 견해와도 다른 개인의 생각일 뿐입니다.
IT업계가 단기간에 성장을 할 수 있었던 이유는 지식의 공유 문화가 활발했었기 때문이라고 생각합니다. 성공하든 실패하든 자신의 경험을 다른 사람들과 공유하고, 그것을 통해 배움으로써 업계 전체가 빠르게 발전할 수 있었습니다.
정치계에서는 이런 식으로 무언가를 공유하는 문화가 낯설고 걱정도 되시겠지만, 개인적으로는 우리나라 정치권에서도 사소한 지식이라도 문서로 정리되고 공유하는 문화가 만들어 지면 좋겠다고 생각합니다. 그런 문화 속에서 자연스럽게 정치권에 종사하시는 분들이 서로 배우고 성장해, 우리나라의 정치를 더 발전시켜 주실테니까요. 고 노무현 대통령이 대통령 기록실을 만드신 취지도 그런 게 아니었을까 감히 추측해봅니다.
벌써 선거가 끝난 지 한달이 지났고, 저는 다시 일상으로 돌아왔습니다. 그 전과 달라진 게 있다면 정치뉴스란을 좀 더 흥미롭게 읽을 수가 있게 되었다는 정도? 많이 부족한 글이지만 그냥 이런 의견도 있구나 정도로 가볍게 읽어봐 주세요. 감사합니다.
Approximate nearest neighbor methods and vector models – NYC ML meetupErik BernhardssonNearest neighbors refers to something that is conceptually very simple. For a set of points in some space (possibly many dimensions), we want to find the closest k neighbors quickly.
This presentation covers a library called Annoy built my me that that helps you do (approximate) nearest neighbor queries in high dimensional spaces. We're going through vector models, how to measure similarity, and why nearest neighbor queries are useful.
NDC16 스매싱더배틀 1년간의 개발일지Daehoon HanNDC 16에서 발표한 '스매싱더배틀 1년간의 개발일지'라는
제목의 포스트 모템입니다.
PT의 내용은 실제 발표 자료에 조금 더 설명을 붙였으며
PT의 내용에 대한 질문은 아래의 주소를 통해서
문의 부탁드립니다.
Twitter
https://twitter.com/Studio_HG
Facebook
https://www.facebook.com/GameStudioHG
Developing Success in Mobile with Unreal Engine 4 | David StelzerJessica TamsThis document discusses the advantages of using the Unreal Engine 4 (UE4) for game development compared to other game engines like Unity. It notes that UE4 is a complete toolset that supports multi-platform development including PC, console, web, VR/AR and mobile. It has visual scripting using Blueprints that allows artists and designers to code without programming. UE4 also has C++ integration and provides full source code access for free along with flexible licensing options.
Re:Zero부터 시작하지 않는 오픈소스 개발Chris Ohk오픈소스 개발을 시작하기로 결정했더라도, 처음 개발하는 경우에는 막상 무엇을 개발할지, 그리고 어떻게 개발해야 할 지 막막하기만 합니다. 이 때는 기존에 공개되어 있는 오픈소스 프로젝트를 활용해 개선해나가는 프로젝트부터 시작하면 많은 도움이 됩니다. 이번 강연에서는 기존 오픈소스 프로젝트를 처음부터 새로 만들어가면서 개선해나갔던 경험을 이야기하고 어떻게 하면 오픈소스 개발에 쉽게 접근할 수 있는지를 알려줍니다.
Unreal Open Day 2017 Unreal Engine Education & TrainingEpic Games ChinaThis document provides an overview of Unreal Engine's education and training initiatives. It discusses how Unreal Engine became freely available in 2014-2015 for academic, student, and personal use. It outlines Unreal Engine training resources like livestreams, documentation, and community groups. It also highlights several university research projects using Unreal Engine for topics like VR editing, animation, and language learning games. The document promotes Unreal Engine's role in game development and other fields in education.
[IGC2017] 오버턴VR 개발기 -1인 개발 3년차 리포트Daehoon HanIGC 2017과 시작해요 언리얼 2017에서 발표를 한 '오버턴 VR 개발기 - 1인 개발 3년차 리포트' 입니다.
오버턴을 개발하면서 있었던 이야기를 담고 있고
VR 게임을 개발하기 위한 노하우를 최대한 이야기하였습니다.
그러면서 1인 독립 개발을 하면서 느꼈던 점들을
발표하였으니 도움이 되셨으면 좋겠습니다.
피드백은 아래 SNS로 부탁드립니다.
https://twitter.com/Hanguny
How to Make Your Next Game Go BIG | Emmanuel CarraudJessica TamsappChocolate is an independent app studio based in Cambridge, UK. We generated over 50 million downloads and have been #1 in App Store general ranking in over 40 countries for multiple apps. We will share our story with practical tips on how to launch successfully mobile games for independent studios and indie developers including analytics, KPIs, localisation, PR, ASO, monetization, user acquisition, App Store ranking on iOS and Android.
4. 4
예, 농담입니다. 그렇지만...
■ 머리카락의 Specular를 실시간으로 표현하는, 매우 싸고 효과적인
방법입니다.
■ 더구나, 두개의 Specular중 하나를 사용하여 Front Scattering을 표현
할 수 있습니다.
■ 이 말은, Rim light와 투과 효과만 추가하면, 손쉽게 퀄리티를 향상 시
킬 수 있다는 거죠.
6. 6
머리카락의 구조
■ 머리카락은 크게 4개로 나눌 수 있습니다.
– 앞 머리
– 가운데 머리
– 뒷 머리
– 꾸밈 머리
■ 각 부분은 각각의 흐름을 갖고 있습니다.
– 그 흐름을 통해 움직임을 유추 할 수 있겠죠.
○
가장 중요한 점은 머리카락 뿌리의 위치 입니다.
8. 8
예, 움직임이라는 측면에서 본다면...
■ 당연히 가운데 머리나 꾸밈 머리로 취급 할 수도 있습니다만
■ 저 부분은 몸통 위에 놓여, 양 옆보다 앞뒤로 움직입니다.
– 실제에서는, 전후좌우로 다 움직입니다. 특히 좌우로 움직일 땐 몸통을 따라
퍼지면서 움직이죠.
– 불행하게도, 제 방식으로는 이것까지 표현하지는 못합니다.
– 그래서 저는 저 부분의 움직임을 앞뒤로 제한하고자 했습니다. 왜냐하
면...
9. 9
접근법
■ 각 버텍스의 움직임 정보를 버텍스 컬러의 각 채널에 저장 합니다.
– R: 움직이는 양
– G: 좌/우 충돌 정보
– B: 클럼핑 그룹
– A: 앞/뒤 충돌 정보
■ 이 말은 머리카락을 이렇게 나눴다는 소리죠
11. 11
움직이는 양 설정법
■ 머리카락의 끝부분이 뿌리 부분보다
더 움직인다고 가정했습니다.
■ 그래서, 각 버텍스를 이렇게 설정했습
니다.
– 뿌리 부분: 0.0
– 끝부분: 1.0
– 나머지 부분
○
UV상의 상대적 위치에 따라 점진적으로
값을 변경해서 설정합니다.
– V 포지션을 기준으로 했습니다.
12. 12
위치 구분 값 설정법 (1)
■ 좌/우 구분하기
– 기준 Plane을 설치합니다.
– 머리카락 Vertex의 X 좌표가 Plane의
X 좌표보다 왼쪽이면
○
1.0으로 설정
○
나머지는 0.0
13. 13
위치 구분 값 설정법 (2)
■ 앞/뒤 구분하기
– 좌/우 구분법과 같은 방법을 씁니다.
– 기준 Plane 설치
– 머리카락 Vertex의 Y좌표가 Plane의 Y
좌표보다 앞쪽이면
○
0.0으로 설정
○
나머지는 1.0
14. 14
■ 당연히 이렇게 간단하게 값을 설정하진 않습니다.
– 기준면의 normal 양방향으로 Ray casting을 합니다.
– 그 선들이 버텍스와의 충돌 여부를 판단합니다.
– 어떤 normal에서 쏘아진 선과 충돌했는지에 따라 위치를 정합니다.
■ 그렇지만 컨셉은 앞에 언급한 것에서부터 출발합니다.
■ 어쨌건, 이 값이 Collision 값과 합쳐 집니다.
15. 15
충돌값 설정하는 법
■ 머리카락 Vertex가 충돌 메쉬와 충돌하는지 검사합니다.
– 만약 충돌 한다면, 충돌 메쉬의 면과 Vertex와의 거리를 측정합니다.
– 이 값을 충돌값으로 저장합니다.
■ 이 값을 위치 구분값과 합쳐 줍니다.
– 충돌값이 없으면: 값을 0.5로 설정합니다.
– 충돌값이 있다면: {0.5 * (Distance Value/Average Distance)}를 더해줍니다.
16. 16
충돌 데이타 결과 (1)
■ 최종 충돌 메쉬
– 노랑색: 충돌 메쉬
– Planes: 위치 구분 Plane
18. 18
충돌 데이타 사용법 (1)
■ 충돌 데이타가 의미하는 것은
– 노말라이징 된 가속 벡터와 더해지는 값입니다.
19. 19
충돌 데이타 사용법 (2)
■ 충돌 데이터를 디코딩 합니다:(0.0 ~ 1.0)을 (-1.0 ~ 1.0)으로
■ 모든 연산은 머리카락의 Local space에서 이루어집니다.
■
World space의 가속 벡터를 Local space로 변환
– Acceleration = Wind + Head movement
– 가속 벡터는 노말라이징 후 사용합니다.
■ 충돌값을 가속 벡터의 각 축과 더합니다.
– 좌/우 값을 X 축과 더합니다.
– 앞/뒤 값을 Y 축과 더합니다.
■ 최종 결과값을 (-1.0 ~ 1.0)으로 Clamping 해줍니다.
■ 여기에 가속 벡터의 강도를 곱해줍니다.
24. 24
셰이더 - 세부사항 (4)
Multiplying
Movement amount
with the result
25. 25
한계
■ 좌/우, 앞/뒤로만 움직입니다.
– 위/아래로는 못움직입니다.
○
버텍스 컬러 채널이 모자랍니다.(T.T)
■ 포니테일 처럼 기~인 머리카락용이 아닙니다.
– 최대한 스타일을 유지하면서 찰랑거리는 움직임을 위해 만들었습니
다.
■ 기본 스키닝 포즈에서 많이 움직일 수 없습니다.
– 버텍스 컬러 값에 따라 원래 위치에서 오프셋을 주는 방식
26. 26
결론
■ 움직임 데이터는 버텍스 컬러로 저장 합니다.
– R: 움직이는 양
– G: 좌/우 충돌
– B: 클럼핑 그룹
– A: 앞/뒤 충돌
■ 충돌 데이타를 가속 벡터와 합칩니다.
– 노말라이즈된 가속 벡터를
– 머리카락의 Local space에서
– 가속 벡터의 세기를 곱해주고
– 움직이는 양으로 마지막 움직임을 조절 해 줍니다.