今年も開発合宿に行ってきました!エンジニア・デザイナー・ビジネス側のメンバーが一堂に会し、昨年から更にパワーアップした合宿の様子をレポートします。
あいさつ
こんにちは。エンジニア採用担当の井上です。 2018年11月22日(木)〜11月23日(金)に開催された開発合宿をレポートします。 昨年はエンジニアだけで実施しましたが、今年はデザイナー・PMも参加し、規模が拡大しました。
合宿テーマ
合宿のテーマは 「突破力 〜 最後は自分が突破する。それが、我々の仕事だ。 〜」。
※サブタイトルは、Opt Octagon(社員全員で作った行動規範)から引用したもの
- ビジネスを突破しそうな新プロダクト(のプロトタイプ)
- プロダクトが市場を突破しそうな既存プロダクトへの機能追加や改善
- 技術負債を突破しそうな既存プロダクト改善
など、突破力を感じたチームに投票する方式です。 優勝チームの商品はGoogle I/OまたはAWS re:Invent参加権1!!昨年以上に気合を入れて、事前準備をするチームもちらほらありました。
合宿当日
ここからは写真を中心にお届けします。
1日目の進捗
今回は、ホテルマホロバマインズ三浦様にお世話になりました。大変快適で素敵なホテルでした!
ホテル到着後、早速開発開始!
夕飯前に、各チーム現状の報告と決意表明です。攻めたメッセージが飛び交い、とても盛り上がる牽制励まし合いタイムとなりました。
夕飯はカニ食べ放題!!
夕食後も開発は続きます
2日目の進捗
早いチームは日の出前から、2日目の開発スタート。
カレーバイキングランチの後、夕方まで開発です
成果発表
各チーム、成果をプレゼンしました。デザイナーの参加により、前回以上にプレゼンがスタイリッシュに。
結果発表
優勝したチームは…
「にゅ〜☆FACE」チームでした!!
2018年に新卒or中途で入社したメンバーで構成されたチームで、画像認識によりバナーが広告媒体の規定に即しているか判定するツール開発に取り組みました。
こうして開発合宿は終了しました。その後、実運用に向けて動いているチームも複数あり、今後の展開も楽しみです。
優勝チームメンバーより
こんにちは。仙台テクノロジー開発部の藤原です。今年の6月にオプトに入社し、開発合宿へは初めて参加しました。 ここからは、チーム「にゅ~☆FACE」(全員2018年入社!)が今回の合宿で開発した業務効率化のためのプロダクト「Banner Checker」についてご紹介します。
プロダクトの目的
日頃目にする機会の多いバナー広告ですが、広告画像の内容については広告媒体によってそれぞれのルールが定められています。制作した広告がルール違反をしていないかを確認するバナーチェックは、バナー広告の入稿プロセスで欠かせない重要な作業。しかし、現状では人の目で一枚ずつチェックしなければならず、担当者にとって大きな負担となっています。 そこで我々は、バナーチェック作業の効率アップを目指して、文字認識の技術を用いてチェックを自動で行うプロダクトの開発に取り組みました。
プロダクト概要
オプトでは多数の広告アカウントを運用しており、バナーチェックの自動化が実現すれば大幅な工数削減が期待できます。バナー広告画像が審査に落ちてしまう主な原因を調査したところ、広告中に含まれるテキストの割合が規定値を超えているために審査に落ちる例が多いことが分かりました。 そこで、次のような機能を提供するプロダクトを開発することにしました。
- チェックしたいバナー広告の画像ファイルを一括アップロードする
- アップロードされた画像が広告媒体が定めるルールを満たしているか判定し、結果を表示する(OK/NG/要確認)
- 要確認と判定された画像を文字検出結果とともに表示する
広告文の検出手法
画像認識のためのライブラリやサービスは有名なものがいくつかありますが、今回はGoogle Cloud Vision APIを利用しました。特別なカスタマイズを行わなくても、画像中の文字を検出する用途には十分なパフォーマンスを発揮することがわかりました。 しかしここに大きな壁が…!!それは「広告画像に含まれる企業ロゴまで検出される問題」です。広告媒体により、企業ロゴに含まれる文字は広告文と見なされる場合とそうではない場合があります。この問題を解決するために企業ロゴ検出のロジック2を開発し、広告画像に含まれる文字を企業ロゴと広告文に分類することに成功しました。
開発の流れ
合宿当日は、プロダクトのインフラ部分からフロントまで、Google Computing EngineやPythonのFlaskフレームワークを活用して2018新卒のメンバーがバリバリと実装を進めました。開発途中には、「ローカルでは動くのにサーバ上では動かない」、「ファイルがアップロードできたりできなかったり」等々のつぶやきが聞こえつつも、最後には画像ファイルのアップロードから結果の表示まで無事にデモを披露することができました! 画像から広告文の部分を検出するロジックの部分は、データサイエンスが専門分野のメンバーが開発を担当しました。合宿中に検証を行った結果、実用可能レベルの判定精度を達成しました! そして、チームリーダーが最後のプレゼン大会に向けてこだわり満載の資料を鋭意制作しました!
今後の展開
合宿の後には、早速担当部署にデモを見せる等実用化に向けて動き出しています。
感想
全メンバーが得意分野を発揮し新たなことを沢山学んで成長できた2日間だったのではと感じています。最後に各メンバーからのひとことを紹介します。
- 普段は扱わない分野にチャレンジできて面白かったです。皆さん能動的にアクションしてくださり、チームメンバーに恵まれたと思います。
- Pythonやるぞ!と思っていたら2日間ほぼコンソールとにらめっこしていました。実用化に向けて頑張りたいです。
- 温泉から眺める三浦海岸はまさに絶景。今度は劔崎で釣りをしてみたい!
- 短い時間でも一緒に仕事をして、他チーム・部署との連携が深くなったと思います。また、他の人の良い点を見つけたことが勉強になりました。そして、Web開発において自分に足りないことがよくわかってきました。短期集中の仕事の時は、チームメンバーの長所を発揮することが大切だと思いました。ホテルのカニや仙台メンバーからのお土産は美味しく忘れられないものでした。近くにある海は眺めただけなのが残念でした。
- 普段の業務では関わる機会の少ない(ほぼ初めましての)メンバーと仕事ができたことがとてもよい経験になりました。また、自分が使ったことのない技術に触れられたことや、現場の業務効率向上を実現するには何が必要かをチームで議論しながらツールの仕様を考えられたことが勉強になりました。普段働くオフィスから離れて、海を見ながらリゾート気分で開発ができて楽しかったです。
最後に
オプトでは、エンジニアを絶賛募集中です。 一緒にもりもり開発したい方、是非こちらからエントリーを!
-
昨年の開発合宿優勝チームのメンバー達が、11月26日~11月30日にラスベガスにて開催されたAWS re:Inventに参加してきました。12/18(火)19:30から実施する非公式振り返りイベントで登壇するので、是非お越しください!市ヶ谷Geek★Night#20 post:Invent↩
-
予め企業ロゴに含まれる企業名等の単語を登録しておき、文字検出結果から企業ロゴを抽出するもの。検出された文字列と登録された単語で類似度を表すJaccard係数を計算し、Jaccard係数が基準値より大きいものは企業ロゴであると判断する。判定の基準値を調整して文字の誤認識や検出漏れにも対応できるようにした。↩