楽天カードマンってほんとに8秒に1人増えてるんですか?
楽天カードマアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアン!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
この記事はICT委員会 コロナに負けないぞブログリレー 5日目の記事となっています。
今!楽天カードがすごいことになってるんです!!!!!!!!!!
(`💳ω💳´)ムムッ!
なんと!
(`💳ω💳´)ムムッ!(`💳ω💳´)ムムッ!
増えた!!!!!!!!!!!
8秒に1人申し込んでるんです!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ほんまか?
ほんまにそんな楽天カードマン増えてるん?
嘘ついたら絶対許さんで?私の楽天アカウント消したるからな?
ってことで、今回は楽天カードマンがほんとに増えているのか世界中に確かめに行きました。
はい!ここはNHKです!!!NHKにやってきました!!!!!!!!!
ここには安倍総理大臣がいますね。安倍総理大臣はお金持ちだから楽天カードなんて庶民的なカードは持たないだろう…
おっと??????????????????
(`💳ω💳´)ムムッ!
安倍総理大臣が楽天カードマンになってしまいました!!!!!!!!!!
まさか安倍総理大臣も楽天カードマンだったとは…恐るべし楽天カード…
次はイギリスにやってきました!!!!!!!!
(`💳ω💳´)ムムッ!
なんてことでしょう!!!!!!!!!!!!!!!!!!
イギリスにも大量の楽天カードマンがいました!!!!!!!!!!!!!!!!!
楽天カードは世界中どこでも使えるので、イギリスでも広まっているようですね。恐るべし楽天カード。
それにしてもカードがデカイ。イギリス人は欲張りなんですね。
最後はアメリカに行ってトランプ大統領に会ってきました!!!!!!!!!!!!!!!!!!!!!!!!
世界中の人が楽天カードマンなんだし、きっとトランプ大統領も楽天カードなのでしょう。
って???????????????????????????????あれ???????????????????????????????????????????
楽天カードマンじゃない??????????????????????????????????????????????????
悲しいことに、トランプ大統領は楽天カードマンではありませんでした。彼は自国のことが好きだからアメックスとか持ってそうですね。
ちなみに、近くにいた記者の方は楽天カードマンでした。
ってことで、結果!!!!!!!!!!!!!!!!!!!!!!!
楽天カードマンは本当に増えていた!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
はい。すごいですね。楽天カード。
ちなみに私は三井住友カードマンです。
あとがき
上のスクショは、ブラウザの拡張機能で人の顔を検出して楽天カードマン化しています。下のリンクからダウンロードできます。
処理部分は以下のコードで、face-api.jsという顔検出のライブラリを使っています。何かの参考にどうぞ。
import * as faceapi from 'face-api.js';
import { browser } from 'webextension-polyfill-ts';
const RAKUTEN_CARD = "assets/rakuten_card.png";
const FACE_LANDMARK_68_MODEL = "https://raw.githubusercontent.com/justadudewhohacks/face-api.js/master/weights/face_landmark_68_model-weights_manifest.json";
const FACE_RECOGNITION_MODEL = "https://raw.githubusercontent.com/justadudewhohacks/face-api.js/master/weights/face_recognition_model-weights_manifest.json";
const SSD_MOBILENETV1_MODEL = "https://raw.githubusercontent.com/justadudewhohacks/face-api.js/master/weights/ssd_mobilenetv1_model-weights_manifest.json";
faceapi.env.monkeyPatch({
Canvas: HTMLCanvasElement,
Image: HTMLImageElement,
ImageData: ImageData,
Video: HTMLVideoElement,
createCanvasElement: () => document.createElement('canvas'),
createImageElement: () => document.createElement('img')
});
const RAKUTEN_CARD_MAN_IDENTIFIER = "rakuten-card-man";
window.addEventListener("load", main, false);
async function main() {
// 楽天カードの画像を読み込み
const rakutenCardImage = new Image();
rakutenCardImage.src = browser.extension.getURL(RAKUTEN_CARD);
// モデルを読み込み
await faceapi.loadFaceLandmarkModel(FACE_LANDMARK_68_MODEL);
await faceapi.loadFaceRecognitionModel(FACE_RECOGNITION_MODEL);
await faceapi.loadSsdMobilenetv1Model(SSD_MOBILENETV1_MODEL);
while (true) {
// 1秒待つ
await new Promise(r => setTimeout(r, 1000));
// 全画像を取得
let imgs = document.images;
for (let i = 0; i < imgs.length; i++) {
let img = imgs[i];
// 楽天カードマンじゃない画像
if (!img.classList.contains(RAKUTEN_CARD_MAN_IDENTIFIER)) {
// 画像のアクセス権を取得
img.crossOrigin = "anonymous";
// 有効な画像かチェック
if (faceapi.isMediaLoaded(img) && img.width != 0 && img.height != 0) {
// 画像からcanvasを生成
const canvas = faceapi.createCanvasFromMedia(img);
const ctx = canvas.getContext('2d');
if (canvas.width == 0 || canvas.height == 0) {
continue;
}
// 画像の顔を検出
const detectionsWithLandmarks = await faceapi.detectAllFaces(img).withFaceLandmarks();
// 楽天カードの貼り付け
detectionsWithLandmarks.forEach(d => {
// 目の取得
const leftEye = d.landmarks.getLeftEye()[0];
const rightEye = d.landmarks.getRightEye()[0];
// 適切なカードのサイズを計算
const cardWidth = (d.detection.imageWidth / 4);
const cardHeight = cardWidth * 0.6;
// 適切なカードの位置を計算
const leftCardXStart = leftEye.x - (cardWidth / 2);
const leftCardYStart = leftEye.y - (cardHeight / 2);
const rightCardXStart = rightEye.x - (cardWidth / 2);
const rightCardYStart = rightEye.y - (cardHeight / 2);
// 楽天カードの貼り付け
ctx?.drawImage(rakutenCardImage, leftCardXStart, leftCardYStart, cardWidth, cardHeight);
ctx?.drawImage(rakutenCardImage, rightCardXStart, rightCardYStart, cardWidth, cardHeight);
});
// 楽天カードマン化した画像に置換
const canvasURL = canvas.toDataURL();
console.log(canvasURL);
img.src = canvasURL;
// 楽天カードマンクラスを追加
img.classList.add(RAKUTEN_CARD_MAN_IDENTIFIER);
}
}
}
}
}
export { };
この記事はフィクションです。登場する人物・団体・名称等は架空であり、実在のものとは関係ありません。