Wantedly Peopleのスキャン画面の裏側 / Wantedly People Scanning Screen

Wantedly Peopleのスキャン画面の裏側 / Wantedly People Scanning Screen

2017/05/31 Wantedly技術見学会 iOS編

3652e140db258288623a0adf248baec0?s=128

Shinichi Goto

May 31, 2017
Tweet

Transcript

  1. 3.
  2. 4.
  3. 7.
  4. 8.
  5. 9.
  6. 10.
  7. 11.
  8. 12.
  9. 13.
  10. 14.
  11. 15.
  12. 16.
  13. 23.

    ༨ஊ: Google I/O '17 pod 'TensorFlow-experimental' ɹ • Android Meets

    TensorFlow: How to Accelerate Your App with AI • "experimental" Ͱͳ͍ํ͸ "Coming soon" ͱͳͬͯΔ • h?ps:/ /cocoapods.org/pods/TensorFlow
  14. 24.
  15. 26.
  16. 27.

    // CardDetector.mm - (NSArray<CardFeature *> *)cardFeaturesInMat:(const cv::Mat &)mat { std::vector<dtct::Card>

    cards = ... // Detect cards on C++ layer NSMutableArray<CardFeature *> *cardFeatures = [NSMutableArray array]; for (const auto& card : cards) { if (!card.is_namecard) continue; CardFeature *cardFeature = [[CardFeature alloc] initWithDTCTCard:card]; [cardFeatures addObject:cardFeature]; } return cardFeatures; }
  17. 35.
  18. 36.
  19. 38.
  20. 39.
  21. 40.
  22. 41.
  23. 43.

    ࢀߟ: ઱໌౓ͷԋࢉ @implementation UIImage (CVExtension) - (double)sharpness { cv::Mat mat,

    gray, laplacian; UIImageToMat(self, mat); cv::cvtColor(mat, gray, CV_BGR2GRAY); cv::Laplacian(gray, laplacian, CV_64F); cv::Scalar mean, stddev; cv::meanStdDev(laplacian, mean, stddev, cv::Mat()); return stddev.val[0] * stddev.val[0]; } @end
  24. 44.
  25. 45.
  26. 47.
  27. 48.
  28. 49.
  29. 54.
  30. 55.
  31. 56.
  32. 58.

    ·ͱΊ • εΩϟϯը໘ͷॲཧͷྲྀΕ / ٕज़ཁૉ / ߏ੒ Λ঺հ • ෆ҆ఆͳݕग़݁Ռ΁ͷରॲ

    => γʔέϯεຖʹॲཧ • "ΊͪΌͪ͘ΌεϚʔτʂ" ͳ͜ͱ͸ͯ͠ͳ͍ʢݱঢ়͸ʣ • Debug/QA൛ͰॲཧաఔɺϦιʔεঢ়گΛग़͓ͯ͘͠ • ࢒Γ͸ޙ೔BlogͰެ։ʢ͢Δ͔΋ʣ
  33. 59.