Slide 1

Slide 1 text

ը૾ॲཧʹ͓͚Δ 6**NBHFͱ$(*NBHFͱ$**NBHF ͷޮՌతͳ࢖͍෼͚ ܀ࢁప !LPUFUV J04%$

Slide 2

Slide 2 text

܀ࢁప !LPUFUV LPUFUVDP w J04"QQ%FWFMPQFSBU w ઃܭपΓ"OESPJEࣗ࡞04 3VTU $5' J04%$

Slide 3

Slide 3 text

J04%$-5 άϥϑΟοΫεҎ֎ͷ෼໺ Ͱͷ.FUBMͷՄೳੑ J04%$

Slide 4

Slide 4 text

w ๏ਓ޲໊͚ࢗ؅ཧαʔϏε w ໿ ͕ࣾܖ໿ w ແྉτϥΠΞϧͰ͖·͢ ຕ·Ͱొ࿥Մ J04%$

Slide 5

Slide 5 text

2JJUB+PCT ࢖༻ٕज़ɺ։ൃମ੍ͳͲΛ ঺հ͍ͯ͠·͢ J04%$

Slide 6

Slide 6 text

ߨԋͷςʔϚ 4BOTBOΞϓϦͷ໊ࢗొ࿥ػೳΛ୊ࡐʹ ϦΞϧλΠϜը૾ ೝࣝ ॲཧʹ͓͚Δ ը૾Ϋϥεͷ࢖͍෼͚ʹ͍ͭͯൃද͠·͢ɻ J04%$

Slide 7

Slide 7 text

ओʹϦαΠζ ॖখ ॲཧʹ͓͚Δ$**NBHFͱ 6**NBHFͷ࢖͍෼͚ͷ࿩͕ϝΠϯʹͳΓ·͢ɻ J04%$

Slide 8

Slide 8 text

4BOTBOΞϓϦͷ ໊ࢗొ࿥ػೳ J04%$

Slide 9

Slide 9 text

໊ࢗొ࿥ػೳ w ը໘্ͷ໊ࢗΛࣗಈݕग़ w ࡱӨޙ͙͢ػցతʹσʔλ Խ͞Ε·͢ w ද໘ཪ໘ࡱӨͰ͖·͢ J04%$

Slide 10

Slide 10 text

ࣗಈݕग़ػೳͷ όʔδϣϯΞοϓ ೥݄ϦϦʔε J04%$

Slide 11

Slide 11 text

ࣗಈݕग़ػೳͷόʔδϣϯΞοϓ w ໊ࢗͷݕग़ਫ਼౓޲্ ! w ಺෦ॲཧͷஔ͖׵͕͑ඞཁ w ໊ࢗొ࿥ॲཧΛݟ௚ͦ͏ʂ J04%$

Slide 12

Slide 12 text

ݟ௚͍ͯ͠Δ͏ͪʹ J04%$

Slide 13

Slide 13 text

͜Ε͸J04%$ͷ ωλʹͳΔͷͰ͸ J04%$

Slide 14

Slide 14 text

৽ͨͳΔ$G1஀ੜͷ ॠؒͰ͋Δ J04%$

Slide 15

Slide 15 text

$POUFOUT ϦΞϧλΠϜը૾ ೝࣝ ॲཧͱ͸ʁ 4BOTBOJ04ΞϓϦͷ࣮૷ ϦαΠζॲཧͷվળ ·ͱΊ J04%$

Slide 16

Slide 16 text

$POUFOUT ϦΞϧλΠϜը૾ ೝࣝ ॲཧͱ͸ʁ 4BOTBOJ04ΞϓϦͷ࣮૷ ϦαΠζॲཧͷվળ ·ͱΊ J04%$

Slide 17

Slide 17 text

ϦΞϧλΠϜը૾ ೝࣝ ॲཧͱ͸ʁ J04%$

Slide 18

Slide 18 text

ϦΞϧλΠϜը૾ ೝࣝ ॲཧ ΧϝϥͳͲ͔ΒϦΞϧλΠϜʹ౉ͬͯ͘Δը૾Λ ࢖ͬͯը૾ॲཧ ·ͨ͸ը૾ೝࣝ Λߦ͍݁ՌΛ ग़ྗ͢Δ J04%$

Slide 19

Slide 19 text

ॲཧͷྲྀΕ Ұൠతͳέʔε w Χϝϥ͔Βը૾Λऔಘ w ը૾ ೝࣝ ॲཧ΁ͷೖྗͷͨΊͷલॲཧ w ը૾ ೝࣝ ॲཧ w ॲཧ݁Ռͷදࣔ J04%$

Slide 20

Slide 20 text

ॲཧͷྲྀΕ Ұൠతͳέʔε w Χϝϥ͔Βը૾Λऔಘ w ը૾ ೝࣝ ॲཧ΁ͷೖྗͷͨΊͷલॲཧ w ը૾ ೝࣝ ॲཧ w ॲཧ݁Ռͷදࣔ Ωϟϓνϟͨ͠Χϝϥө૾ΛϑϨʔϜ͝ͱʹऔಘ J04%$

Slide 21

Slide 21 text

ॲཧͷྲྀΕ Ұൠతͳέʔε w Χϝϥ͔Βը૾Λऔಘ w ը૾ ೝࣝ ॲཧ΁ͷೖྗͷͨΊͷલॲཧ w ը૾ ೝࣝ ॲཧ w ॲཧ݁Ռͷදࣔ ը૾ܗࣜͷม׵΍ϦαΠζɾάϨʔεέʔϧԽ ը૾ೝࣝͷ৔߹ ͳͲ J04%$

Slide 22

Slide 22 text

ॲཧͷྲྀΕ Ұൠతͳέʔε w Χϝϥ͔Βը૾Λऔಘ w ը૾ ೝࣝ ॲཧ΁ͷೖྗͷͨΊͷલॲཧ w ը૾ ೝࣝ ॲཧ w ॲཧ݁Ռͷදࣔ ΅͔͠΍৭ຯͷมߋɺಛ௃఺ݕग़ͳͲ J04%$

Slide 23

Slide 23 text

ॲཧͷྲྀΕ Ұൠతͳέʔε w Χϝϥ͔Βը૾Λऔಘ w ը૾ ೝࣝ ॲཧ΁ͷೖྗͷͨΊͷલॲཧ w ը૾ ೝࣝ ॲཧ w ॲཧ݁Ռͷදࣔ ॲཧͨ͠ޙͷը૾΍ೝࣝ݁ՌΛը໘ʹදࣔ J04%$

Slide 24

Slide 24 text

$POUFOUT ϦΞϧλΠϜը૾ ೝࣝ ॲཧͱ͸ʁ 4BOTBOJ04ΞϓϦͷ࣮૷ ϦαΠζॲཧͷվળ ·ͱΊ J04%$

Slide 25

Slide 25 text

4BOTBOJ04ΞϓϦͷ࣮૷ J04%$

Slide 26

Slide 26 text

J04ʹ͓͚Δ ϦΞϧλΠϜը૾ ೝࣝ ॲཧ J04%$

Slide 27

Slide 27 text

J04%$

Slide 28

Slide 28 text

αϯϓϧΞϓϦ 0QFO$7Λ࢖ͬͨԁݕग़ J04%$

Slide 29

Slide 29 text

J04%$

Slide 30

Slide 30 text

Χϝϥ͔Βը૾Λऔಘ J04%$

Slide 31

Slide 31 text

"7'PVOEBUJPO w ΧϝϥॲཧΛ࣮૷͢Δͱ͖ʹ࢖͏'SBNFXPSL w ϦΞϧλΠϜॲཧΛߦ͏৔߹͸ "7$BQUVSF7JEFP%BUB0VUQVUΛ࢖͏ J04%$

Slide 32

Slide 32 text

ը૾Λड͚औΔ class Capture: AVCaptureVideoDataOutputSampleBufferDelegate { func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) { ... } } J04%$

Slide 33

Slide 33 text

ը૾Λड͚औΔ class Capture: AVCaptureVideoDataOutputSampleBufferDelegate { func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) { ... } } ը૾σʔλ͸$.4BNQMF#VGGFSͰड͚औΔͷ Ͱผͳը૾Ϋϥε΁ม׵ͯ͋͛͠ͳ͍ͱ͍͚ͳ͍ J04%$

Slide 34

Slide 34 text

J04%$

Slide 35

Slide 35 text

$**NBHF΁ม׵ w $.4BNQMF#V⒎FS͸$**NBHF΁ม׵͢Δɹ ͜ͱ͕ଟ͍ w $7*NBHF#VGGFSΛܦ༝͢Δ J04%$

Slide 36

Slide 36 text

$**NBHF΁ม׵ func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) { let imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer) let ciImage = CIImage(cvImageBuffer: imageBuffer!) } J04%$

Slide 37

Slide 37 text

$**NBHF΁ม׵ func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) { let imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer) let ciImage = CIImage(cvImageBuffer: imageBuffer!) } $.4BNQMF#V⒎FS͔Β$7*NBHF#VGGFS΁ɹ ม׵ J04%$

Slide 38

Slide 38 text

$**NBHF΁ม׵ func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) { let imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer) let ciImage = CIImage(cvImageBuffer: imageBuffer!) } $7*NBHF#V⒎FS͔Β$**NBHF΁ม׵ J04%$

Slide 39

Slide 39 text

4BOTBOΞϓϦʹ͓͚Δ "7'PVOEBUJPO w ΑΓଟ͘ͷ໊ࢗΛೝ͍ࣝͨ͠ w ,αΠζ ,ඇରԠػछ͸'VMM)%αΠζ w ೥ʑΧϝϥͷੑೳ্͕͕͍ͬͯΔ J04%$

Slide 40

Slide 40 text

J04%$

Slide 41

Slide 41 text

ը૾ ೝࣝ ॲཧ΁ͷೖྗͷ ͨΊͷલॲཧ J04%$

Slide 42

Slide 42 text

4BOTBOΞϓϦʹ͓͚Δલॲཧ w ը૾ॲཧ΁ͷೖྗ͸6**NBHF w ೖྗը૾Λॖখ͠ͳ͍ͱ͍͚ͳ͍ ۃ୺ʹେ͖ ͳը૾ͷ৔߹ʹॲཧ͕͔͔࣌ؒͬͯ͠·͏ J04%$

Slide 43

Slide 43 text

6**NBHF΁ม׵ let context = CIContext() let cgImage = context.createCGImage(ciImage, from: ciImage.extent) let uiImage = UIImage(cgImage: cgImage!) J04%$

Slide 44

Slide 44 text

6**NBHF΁ม׵ let context = CIContext() let cgImage = context.createCGImage(ciImage, from: ciImage.extent) let uiImage = UIImage(cgImage: cgImage!) έʔεʹ΋ΑΔ͕ $(*NBHFΛܦ༝͢Δέʔε ͕ଟ͍ J04%$

Slide 45

Slide 45 text

J04%$

Slide 46

Slide 46 text

ը૾ ೝࣝ ॲཧ J04%$

Slide 47

Slide 47 text

4BOTBOΞϓϦʹ͓͚Δ໊ࢗೝࣝॲཧ w ෦ॺؒ &JHIUࣄۀ෦ ͰίʔυΛڞ༻ w $BSUIBHFରԠ w Ұ෦"OESPJEΞϓϦͱίʔυΛڞ༻ w ೖྗ͸6**NBHF J04%$

Slide 48

Slide 48 text

J04%$

Slide 49

Slide 49 text

ॲཧ݁Ռͷදࣔ J04%$

Slide 50

Slide 50 text

ॲཧ݁Ռͷදࣔ w ը૾ॲཧޙͷը૾ w 6**NBHF7JFX΍.5,7JFX .FUBM,JU w ೝࣝ݁Ռ w 6*#F[JFS1BUI΍$"4IBQF-BZFS J04%$

Slide 51

Slide 51 text

J04%$

Slide 52

Slide 52 text

J04%$

Slide 53

Slide 53 text

$POUFOUT ϦΞϧλΠϜը૾ ೝࣝ ॲཧͱ͸ʁ 4BOTBOJ04ΞϓϦͷ࣮૷ ϦαΠζॲཧͷվળ ·ͱΊ J04%$

Slide 54

Slide 54 text

ϦαΠζॲཧͷվળ J04%$

Slide 55

Slide 55 text

4BOTBOΞϓϦͷલॲཧ w ը૾ೝࣝॲཧ΁ೖྗ͢Δલॲཧ w 6**NBHF΁ม׵ w ಛఆͷαΠζ΁ॖখ J04%$

Slide 56

Slide 56 text

ը૾Ϋϥεͷ࢖༻ํ਑ w جຊతʹ$**NBHFΛ࢖͍ճ͢ w ඞཁͳͱ͜ΖͰ6**NBHF΁ม׵ ϦαΠζΛ6**NBHFͰߦ͏͔$**NBHFͰߦ͏͔ ͷํ਑͕ᐆດ J04%$

Slide 57

Slide 57 text

ϦαΠζॲཧΛ6**NBHF͔ $**NBHFʹد͍ͤͨ J04%$

Slide 58

Slide 58 text

ͲͪΒʹدͤΔ΂͖͔ J04%$

Slide 59

Slide 59 text

$**NBHFͱ6**NBHFʹ͍ͭͯ ௐ΂ͯΈͨ J04%$

Slide 60

Slide 60 text

$**NBHF $PSF*NBHF J04%$

Slide 61

Slide 61 text

$**NBHF $PSF*NBHFʹؚ·ΕΔը૾Ϋϥε J04%$

Slide 62

Slide 62 text

$PSF*NBHF w ಈըɾ੩ࢭըͷը૾ॲཧΛߦ͏ͨΊͷ 'SBNFXPSL w .FUBMͷ஌ࣝͳ͠ʹ(16Λ࢖ͬͨը૾ॲཧΛ ࣮૷Ͱ͖Δ J04%$

Slide 63

Slide 63 text

$**NBHFͷಛ௃ w Πϛϡʔλϒϧ w Ұ౓࡞੒͢Δͱը૾৘ใͷมߋ͸Ͱ͖ͳ͍ w ผεϨου͔Β҆શʹࢀরՄೳ w ஗Ԇ࣮ߦ w ࣮ࡍʹ࢖͏ͱ͖·Ͱ͸ॲཧ͕ߦΘΕͳ͍ J04%$

Slide 64

Slide 64 text

$**NBHFͷ஗Ԇ࣮ߦ let filter = CIFilter(name: "CIGaussianBlur")! filter.setValue(ciImage, forKey: kCIInputImageKey) filter.setValue(10.0, forKey: kCIInputRadiusKey) let filteredImage = filter.outputImage! CIContext().createCGImage(filteredImage, from: filteredImage.extent) J04%$

Slide 65

Slide 65 text

$**NBHFͷ஗Ԇ࣮ߦ let filter = CIFilter(name: "CIGaussianBlur")! filter.setValue(ciImage, forKey: kCIInputImageKey) filter.setValue(10.0, forKey: kCIInputRadiusKey) let filteredImage = filter.outputImage! CIContext().createCGImage(filteredImage, from: filteredImage.extent) ͜͜Ͱ͸ը૾ॲཧ͸ߦΘΕͳ͍ J04%$

Slide 66

Slide 66 text

$**NBHFͷ஗Ԇ࣮ߦ let filter = CIFilter(name: "CIGaussianBlur")! filter.setValue(ciImage, forKey: kCIInputImageKey) filter.setValue(10.0, forKey: kCIInputRadiusKey) let filteredImage = filter.outputImage! CIContext().createCGImage(filteredImage, from: filteredImage.extent) ͜͜Ͱը૾ॲཧ͕ߦΘΕΔ J04%$

Slide 67

Slide 67 text

$**NBHFΛ࢖ͬͨ ϦαΠζॲཧ J04%$

Slide 68

Slide 68 text

$**NBHFΛ࢖ͬͨϦαΠζॲཧ w $*'JMUFSΛ࢖͏ w $*-BOD[PT4DBMF5SBOTGPSN w $*#JDVCJD4DBMF5SBOTGPSN w $*'JMUFSΛ࢖Θͳ͍ w ΞϑΟϯม׵ $("⒏OF5SBOTGPSN J04%$

Slide 69

Slide 69 text

$*-BOD[PT4DBMF5SBOTGPSN extension CIImage { func resize(to scale: CGFloat) -> CIImage? { guard let filter = CIFilter(name: "CILanczosScaleTransform") else { return nil } filter.setDefaults() filter.setValue(self, forKey: kCIInputImageKey) filter.setValue(scale, forKey: kCIInputScaleKey) return filter.outputImage } } J04%$

Slide 70

Slide 70 text

ΞϑΟϯม׵ extension CIImage { func resize(to scale: CGFloat) -> CIImage? { let matrix = CGAffineTransform(scaleX: scale, y: scale) return self.transformed(by: matrix) } } J04%$

Slide 71

Slide 71 text

6**NBHF 6*,JU J04%$

Slide 72

Slide 72 text

6**NBHF w J04ΞϓϦͰը૾σʔλΛѻ͏ͨΊͷΫϥε w Πϛϡʔλϒϧ w J04Ͱαϙʔτ͞Ε͍ͯΔը૾ܗࣜʹରԠ w 1/(ͱ+1&(ʹ࠷దԽ͞Ε͍ͯΔ J04%$

Slide 73

Slide 73 text

6**NBHFΛ࢖ͬͨ ϦαΠζॲཧ J04%$

Slide 74

Slide 74 text

ϦαΠζॲཧ ʙJ04 extension UIImage { func resize(to size: CGSize) -> UIImage? { UIGraphicsBeginImageContext(size) defer { UIGraphicsEndImageContext() } let newRect = CGRect(origin: .zero, size: size) draw(in: newRect) return UIGraphicsGetImageFromCurrentImageContext() } } J04%$

Slide 75

Slide 75 text

ϦαΠζॲཧ J04ʙ extension UIImage { func resize(to size: CGSize) -> UIImage { let format = UIGraphicsImageRendererFormat() format.scale = 1 let renderer = UIGraphicsImageRenderer(size: size, format: format) return renderer.image(actions: { context in let newRect = CGRect(origin: .zero, size: size) self.draw(in: newRect) }) } } J04%$

Slide 76

Slide 76 text

ϦαΠζॲཧ J04ʙ extension UIImage { func resize(to size: CGSize) -> UIImage { let format = UIGraphicsImageRendererFormat() format.scale = 1 let renderer = UIGraphicsImageRenderer(size: size, format: format) return renderer.image(actions: { context in let newRect = CGRect(origin: .zero, size: size) self.draw(in: newRect) }) } } /PO0QUJPOBMʹͳΔʂ J04%$

Slide 77

Slide 77 text

ϦαΠζॲཧͷ࣮૷ํ๏͕ Θ͔ͬͨͱ͜ΖͰ J04%$

Slide 78

Slide 78 text

ॲཧ࣌ؒΛܭଌͯ͠Έͨ J04%$

Slide 79

Slide 79 text

ϦαΠζॲཧͷॲཧ࣌ؒ αϯϓϧΞϓϦͰߦ͍ͬͯΔԁݕग़ॲཧʮճ͋ ͨΓͷ૯ॲཧ࣌ؒʯ͔Βʮԁݕग़ॲཧʹ͔͔ͬͨ ࣌ؒʯΛࠩ͠Ҿ͍ͨ࣌ؒΛܭଌ J04%$

Slide 80

Slide 80 text

࣮ݧʹ࢖ͬͨJ1IPOF J1IPOF94.BY J04 J1IPOFT J04 ೖྗը૾͸'VMM)% ʷ J04%$

Slide 81

Slide 81 text

ᶃJ1IPOF94.BY J04 J04%$

Slide 82

Slide 82 text

ܭଌ݁Ռ 6**NBHF ํࣜ ฏۉॲཧ࣌ؒ 6*(SBQIJDT#FHJO*NBHF$POUFYU ʙJ04 6*(SBQIJDT*NBHF3FOEFSFS J04ʙ શମͷॲཧ͔࣌ؒΒೝࣝॲཧΛࠩ͠Ҿ͍ͨ࣌ؒ ୯Ґ͸NT J04%$

Slide 83

Slide 83 text

ܭଌ݁Ռ $**NBHF ํࣜ ฏۉॲཧ࣌ؒ ΞϑΟϯม׵ $*-BOD[PT4DBMF5SBOTGPSN $*#JDVCJD4DBMF5SBOTGPSN શମͷॲཧ͔࣌ؒΒೝࣝॲཧΛࠩ͠Ҿ͍ͨ࣌ؒ ୯Ґ͸NT J04%$

Slide 84

Slide 84 text

ᶄJ1IPOFT J04 J04%$

Slide 85

Slide 85 text

ܭଌ݁Ռ 6**NBHF ํࣜ ฏۉॲཧ࣌ؒ 6*(SBQIJDT#FHJO*NBHF$POUFYU ʙJ04 6*(SBQIJDT*NBHF3FOEFSFS J04ʙ શମͷॲཧ͔࣌ؒΒೝࣝॲཧΛࠩ͠Ҿ͍ͨ࣌ؒ ୯Ґ͸NT J04%$

Slide 86

Slide 86 text

ܭଌ݁Ռ $**NBHF ํࣜ ฏۉॲཧ࣌ؒ ΞϑΟϯม׵ $*-BOD[PT4DBMF5SBOTGPSN $*#JDVCJD4DBMF5SBOTGPSN શମͷॲཧ͔࣌ؒΒೝࣝॲཧΛࠩ͠Ҿ͍ͨ࣌ؒ ୯Ґ͸NT J04%$

Slide 87

Slide 87 text

ܭଌ݁Ռ͔ΒΘ͔ͬͨ͜ͱ w $**NBHFΛ࢖ͬͨ΄͏͕ѹ౗తʹ଎͍ w ΞϑΟϯม׵ɺ$*#JDVCJD4DBMF5SBOTGPSNɺ $*-BOD[PT4DBMF5SBOTGPSNͷॱʹ଎͍ w 6*(SBQIJDT*NBHF3FOEFSFS͸ࢥͬͨΑΓ࣌ ͕͔͔ؒͬͨ ࣮૷ͷ໰୊ʁ J04%$

Slide 88

Slide 88 text

$POUFOUT ϦΞϧλΠϜը૾ ೝࣝ ॲཧͱ͸ʁ 4BOTBOJ04ΞϓϦͷ࣮૷ ϦαΠζॲཧͷվળ ·ͱΊ J04%$

Slide 89

Slide 89 text

·ͱΊ J04%$

Slide 90

Slide 90 text

ϦΞϧλΠϜը૾ ೝࣝ ॲཧͷύϑΥʔϚϯε ΞοϓͷͨΊͷը૾Ϋϥεͷ࢖͍෼͚ ᶃ(16 $**NBHF Λ༗ޮ׆༻͢Δ ᶄద੾ͳॲཧํࣜΛબͿ J04%$

Slide 91

Slide 91 text

ᶃ(16 $**NBHF Λ༗ޮ׆༻͢Δ w ൺֱతݹ͍୺຤Ͱ΋ߴ଎ʹը૾ॲཧͰ͖Δ w J04ͷόʔδϣϯ͕৽͍͠ํ͕ύϑΥʔϚϯ ε͕ྑ͍ w ๛෋ͳը૾ॲཧ $*'JMUFS w J04ͷόʔδϣϯʹΑͬͯ͸࢖͑ͳ͍΋ͷ΋ ͋Δ J04%$

Slide 92

Slide 92 text

ᶄద੾ͳॲཧํࣜΛબͿ w ಉ͡ϦαΠζํࣜͰ΋ॲཧ଎౓ʹࠩ w ॲཧޙͷը૾ͷ඼࣭ʹ΋ࠩ w ॖখ࣌ͷิؒํࣜͷࠩ w ը૾ ೝࣝ ॲཧͷಛੑʹ߹Θͤͯద੾ͳํࣜΛ બఆ͢Δ J04%$

Slide 93

Slide 93 text

ྫ ԁݕग़΍ۣܗݕग़ w ઢ͕औΕΔΑ͏ʹ͍ͨ͠ w ྠֲ͕ڧௐ͞ΕΔͷ͕ྑ͍ w όΠΩϡʔϏοΫ $*#JDVCJD4DBMF5SBOTGPSN J04%$

Slide 94

Slide 94 text

ओͳࢀߟࢿྉ w "QQMF%FWFMPQFS $PSF*NBHF 6*,JUͳͲ w *NBHF3FTJ[JOH5FDIOJRVFT w ը૾ϦαϯϓϦϯάͷൺֱݕূ ଞଟ਺ J04%$

Slide 95

Slide 95 text

J04%$

Slide 96

Slide 96 text

͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ J04%$