20150701卒研進捗lt (share)

28
タタタタタタタ タタタタタタタタタ

Upload: mohemohe

Post on 20-Feb-2017

147 views

Category:

Education


2 download

TRANSCRIPT

Page 1: 20150701卒研進捗LT (share)

タイトルを入力サブタイトルを入力

Page 2: 20150701卒研進捗LT (share)

2

内定者向けの課題が

つらい

Page 3: 20150701卒研進捗LT (share)

3

本日の睡眠時間

90 分

Page 4: 20150701卒研進捗LT (share)

4

オンデマンドスライド※12:43

Page 5: 20150701卒研進捗LT (share)

5

本題

Page 6: 20150701卒研進捗LT (share)

6

近況

Page 7: 20150701卒研進捗LT (share)

7

C# の LINQ を使い始めた

関数型言語っぽくかける

Page 8: 20150701卒研進捗LT (share)

エラトステネスの篩

8

ふるい

Page 9: 20150701卒研進捗LT (share)

100,000 以下の素数

9

Page 10: 20150701卒研進捗LT (share)

C++ C#.NET

10

#include <chrono>#include <cmath>#include <iostream>#include <vector>

using namespace std;

int main(){ const int max = 100000; vector<int> primeArray; int sieveArray[max + 1] = { 0 };

auto startTime = chrono::system_clock::now();

sieveArray[0] = -1; sieveArray[1] = -1;

int stopPos = (int)sqrt(max); int continuePos = stopPos; for (int i = 2; i < stopPos; i++){ primeArray.push_back(i); sieveArray[i] = -1; for (int j = i + 1; j <= max; j++){ if (j % i == 0){ sieveArray[j] = -1; } } }

for (int i = continuePos; i <= max; i++){ if (sieveArray[i] != -1){ primeArray.push_back(i); } }

auto endTime = chrono::system_clock::now(); auto deltaTime = endTime - startTime; cout << chrono::duration_cast<chrono::milliseconds>(deltaTime).count() << " ms" << endl;

cin.get(); return 0;}

using System;using System.Collections.Generic;using System.Linq;

namespace EratosthenesCsharp{ class Program { static int Main() { const int max = 100000; var primeArray = new List<int>(); var sieveArray = (new int[max + 1]).Select(i => 0).ToArray();

var startTime = DateTime.Now;

sieveArray[0] = -1; sieveArray[1] = -1;

int stopPos = (int)Math.Sqrt(max); int continuePos = stopPos; for (int i = 2; i < stopPos; i++){ primeArray.Add(i); sieveArray[i] = -1; for (int j = i + 1; j <= max; j++){ if (j % i == 0){ sieveArray[j] = -1; } } }

for (int i = continuePos; i <= max; i++){ if (sieveArray[i] != -1){ primeArray.Add(i); } }

var endTime = DateTime.Now; var deltaTime = (endTime - startTime).TotalMilliseconds; Console.WriteLine(deltaTime + "ms");

Console.ReadKey(false); return 0; } }}

https://gist.github.com/mohemohe/6a5d9ddc48cd97f707cd

Page 11: 20150701卒研進捗LT (share)

C++ C#.NET

11

sieveArray[0] = -1;sieveArray[1] = -1; int stopPos = (int)Math.Sqrt(max);int continuePos = stopPos;for (int i = 2; i < stopPos; i++){ primeArray.Add(i); sieveArray[i] = -1; for (int j = i + 1; j <= max; j++){ if (j % i == 0){ sieveArray[j] = -1; } }} for (int i = continuePos; i <= max; i++){ if (sieveArray[i] != -1){ primeArray.Add(i); }}

sieveArray[0] = -1;sieveArray[1] = -1; int stopPos = (int)sqrt(max);int continuePos = stopPos;for (int i = 2; i < stopPos; i++){ primeArray.push_back(i); sieveArray[i] = -1; for (int j = i + 1; j <= max; j++){ if (j % i == 0){ sieveArray[j] = -1; } }} for (int i = continuePos; i <= max; i++){ if (sieveArray[i] != -1){ primeArray.push_back(i); }}

https://gist.github.com/mohemohe/6a5d9ddc48cd97f707cd

Page 12: 20150701卒研進捗LT (share)

C++ C#.NET

12

sieveArray[0] = -1;sieveArray[1] = -1; int stopPos = (int)Math.Sqrt(max);int continuePos = stopPos;for (int i = 2; i < stopPos; i++){ primeArray.Add(i); sieveArray[i] = -1; for (int j = i + 1; j <= max; j++){ if (j % i == 0){ sieveArray[j] = -1; } }} for (int i = continuePos; i <= max; i++){ if (sieveArray[i] != -1){ primeArray.Add(i); }}

sieveArray[0] = -1;sieveArray[1] = -1; int stopPos = (int)sqrt(max);int continuePos = stopPos;for (int i = 2; i < stopPos; i++){ primeArray.push_back(i); sieveArray[i] = -1; for (int j = i + 1; j <= max; j++){ if (j % i == 0){ sieveArray[j] = -1; } }} for (int i = continuePos; i <= max; i++){ if (sieveArray[i] != -1){ primeArray.push_back(i); }}

https://gist.github.com/mohemohe/6a5d9ddc48cd97f707cd

95 ms 96.1 ms

Page 13: 20150701卒研進捗LT (share)

13

研究内容

Page 14: 20150701卒研進捗LT (share)

14

興味があるのは画像系

Page 15: 20150701卒研進捗LT (share)

15

決めかねている

Page 16: 20150701卒研進捗LT (share)

16

#1 エッジ検出を応用した画像の高品質拡大

Page 17: 20150701卒研進捗LT (share)

17

初回のスライド参照

Page 18: 20150701卒研進捗LT (share)

18

背景もっと速く綺麗に画像を拡大したい

Page 19: 20150701卒研進捗LT (share)

19

利点

たぶん waifu2x より速い

Page 20: 20150701卒研進捗LT (share)

20

欠点

Red Ocean

Page 21: 20150701卒研進捗LT (share)

21

必要な知識エッジ検出

深層畳み込みニューラルネットワーク

OpenCL ( CUDA )

Page 22: 20150701卒研進捗LT (share)

22

#2 ピクセル変更によるステガノグラフィー

Page 23: 20150701卒研進捗LT (share)

23

前回のスライド参照

Page 24: 20150701卒研進捗LT (share)

24

背景簡単に画像の著作権を主張したい

Page 25: 20150701卒研進捗LT (share)

25

利点現時点でフリー実装がない

Page 26: 20150701卒研進捗LT (share)

26

欠点

たぶん茨の道

Page 27: 20150701卒研進捗LT (share)

27

必要な知識リード・ソロモン符号

+ 大域的な符号化

耐拡大縮小アルゴリズム

Page 28: 20150701卒研進捗LT (share)

28

#1 エッジ検出を応用した画像の高品質拡大

#2 ピクセル変更によるステガノグラフィー