きりモザ

https://github.com/hackz-hackathon-ichthyo/sinntyoku-dameja-nakattadesu

TypeScript

Python

React

Azure

MySQL

サイトにアクセスする度にモザイクアートが出来上がる(予定だった)

citrus_candy

推しアイデア

キリ番をテーマに、90年代のインターネットを再現しました 「キリ番を踏むその瞬間までめがはなせない」をコンセプトとしています

作った背景

めがはなせないときはどんなときか考えた時、キリ番を踏む時とモザイクアートが完成する時の2つをイメージしたので、合体させました

推し技術

モザイクアートの生成には、Pythonを用いてCIE L*a*b色空間に変換して色差を求めていました インフラはAzureを使っています

プロジェクト詳細

バックエンドの

進捗ダメ
でした

きりモザとは

  • きりばんモザイク
  • 略してきりモザ

主な機能

  • サイトのアクセス数のカウントをする
  • サイトにアクセスするたびにモザイクアートが出来上がる
  • モザイクアートの総ブロック数 = キリ番になると完成する
  • 匿名でコメントが残せる
  • コメントが見れる掲示板がある

開発技術

フロントエンド

  • React
  • TypeScript

バックエンド

  • FastAPI
  • Python
  • Twitter API v2

インフラ

  • Web App for Containers
  • Container Registry
  • Static Web Apps

システム構成図

image

モザイクアートについて

ここを参考にしました

生成するまでの大まかな手順

image

  1. モザイクアートの元画像を 100 x 100 に分割
  2. 分割したブロックをランダムで1つ選択
  3. ブロック画像と置き換える画像の類似度を計算する
  4. 類似度の色差が一番小さいものを実際に置き換える画像とする
  5. 2 ~ 4 を 10000 回繰り返すとモザイクアートが出来がる

類似度について

  1. 比べる2つ画像のひとつひとつの画素に対して、L*a*b* 色空間の色差を求める
  2. すべての色差の合計を計算する

という方法で類似度を計算しています。

数式で表すと以下のようになります。

image

N を画像の縦の長さ、M を横の長さ、L, L'L* a* b* 空間の L* 成分、a, a'a* 成分、b, b'b* 成分とします。

サンプル

image


バックエンドの進捗ダメだった言い訳
  • Azure のデプロイに 1 日目の 2 / 3 ぐらいを費やした
  • Docker に苦しまされた
  • Python わからん
  • バックエンドができる人がいなくて勉強しながら開発をしていた

        *'``・* 。         |     `*。        ,。∩      *    もうどうにでもな~れ       + (´・ω・`) *。+゚       `*。 ヽ、  つ *゚*        `・+。*・' ゚⊃ +゚        ☆   ∪~ 。*゚         `・+。*・ ゚

citrus_candy

@j5q3knxpt116fntq