ホームページ > 記事 > テクノロジー周辺機器 > Stable Diffusion は JPEG などのアルゴリズムを上回り、鮮明さを維持しながら画像圧縮を改善できるでしょうか?
テキストベース画像生成モデルは非常に人気があり、拡散モデルだけでなく、オープンソースの安定拡散モデルも人気です。
最近、スイスのソフトウェア エンジニア、Matthias Bühlmann は、安定拡散が画像の生成だけに使用できるわけではないことを偶然発見しました。 #ビットマップ画像を圧縮します。JPEG や WebP よりもさらに高い圧縮率を実現します。
たとえば、ラマの写真、元の画像は 768KB ですが、JPEG を使用して 5.66KB に圧縮され、安定拡散によりさらに 4.98KB に圧縮すると、より多くの高解像度の詳細を保持でき、より少ない圧縮アーティファクトが得られます。これは、肉眼で見ても他の圧縮アルゴリズムよりも明らかに優れています。
ただし、この圧縮方法には欠点もあります。つまり、は顔画像やテキスト画像の圧縮には適していません。場合によっては、次に、いくつかのオリジナル画像が コンテンツなしで生成されることもあります。
オートエンコーダーを再トレーニングする
でも安定拡散と同様の圧縮効果を達成できますが、安定拡散を使用するのが主な圧縮効果の 1 つです。利点は、誰かがすでに何百万もの資金 を投資して圧縮モデルのトレーニングを支援していることです。それなら、なぜ お金をかけて 圧縮モデルを再度トレーニングするのでしょうか? 安定拡散による画像の圧縮方法
拡散モデルは生成モデルの優位性に挑戦しており、対応するオープンソースの安定拡散モデルも芸術的革命を引き起こしています機械学習コミュニティで。
安定した拡散は、3 つの学習済みニューラル ネットワーク、つまり 変分オートエンコーダー (VAE)
を直列に接続することによって得られます。U-Net モデル と テキスト エンコーダー 。
変分オートエンコーダは、画像空間内の画像をエンコードおよびデコードして、 潜在空間 ## 内の画像の表現ベクトルを取得します。
# 低解像度 (64x64)高精度 (4x32 ビット) ソース画像 (512x512 の 3x8 または 4x8 ビット) のベクトルで表されます。 画像を潜在空間にエンコードする VAE のトレーニング プロセスは、主に自己教師あり学習に依存しています。つまり、入力と出力は両方ともソース画像であるため、モデルがさらにトレーニングされると、異なる値になります。モデルのバージョンによっては、潜在空間表現が異なって見える場合があります。
Stable Diffusion v1.4 を使用して潜在空間表現を 4 チャネル カラー イメージに再マップして解釈すると、下の中央のイメージのようになります。ソース イメージ キーの機能はまだ表示されます。
VAE 往復エンコードは一度だけロスレスではないことに注意してください。
たとえば、デコード後、青いテープ上のANNA 名 はソース画像ほど鮮明ではなく、可読性が大幅に低下します。
Stable Diffusion v1.4 の変分オートエンコーダは、 小さなテキストや顔画像の表現があまり得意ではありません、私はそう思いませんv1.5で改善されるかどうかはわかりません。
安定拡散の主な圧縮アルゴリズムは、この画像の潜在空間表現を使用して、短いテキストの説明から新しい画像を生成することです。
潜在空間によって表されるランダム ノイズから開始し、完全にトレーニングされた U-Net を使用して潜在空間画像からノイズを繰り返し除去し、より単純な表現でモデルを出力します。それはこのノイズの中にあると信じています 「見る」という予測は、私たちが雲を見るときに、不規則なグラフィックスから頭の中に形や顔を復元するのと少し似ています。
安定拡散を使用して画像を生成する場合、この反復的なノイズ除去ステップは 3 番目のコンポーネントであるテキスト エンコーダーによってガイドされ、テキスト エンコーダーによって U-Net にそれに関する情報が提供されます。騒音の中で見ること。
ただし、圧縮タスクの場合、 はテキスト エンコーダ を必要としないため、実験プロセスでは、伝えるために使用される 空の文字列 エンコーディングのみが作成されました。 U-Net は、画像再構成プロセス中に ガイドなしノイズ除去 を実行します。
Stable Diffusion を画像圧縮コーデックとして使用するには、アルゴリズムが VAE によって生成された潜在表現を効果的に圧縮する必要があります。
潜在表現をダウンサンプリングしたり、既存の非可逆画像圧縮方法を直接使用したりすると、再構成された画像の品質が大幅に低下することが実験でわかります。
しかし、著者は、VAE デコードが潜在表現の量子化に非常に効果的であることを発見しました。
浮動小数点から 8 ビット符号なし整数へのポテンシャルのスケーリング、クランプ、および再マッピングでは、目に見える小さな再構成エラーのみが生成されます。
#8 ビット潜在表現を量子化することにより、画像によって表現されるデータ サイズは 64*64*4*8bit=16kB になります。これは非圧縮よりもはるかに小さいです。ソース画像は 512*512*3*8bit=768kB
潜在表現のビット数が 8 ビット未満の場合、生成されません。より良い結果が得られます。
画像に対してさらに パレタイズ と ディザリング を実行すると、量子化効果が再び向上します。
256*4*8 ビット ベクトルとフロイド スタインバーグ ディザリングの潜在表現を使用してパレット表現を作成し、データ サイズをさらに 64*64*8 256*4 *8 ビットに圧縮しました=5kB
潜在空間パレットのディザリングによりノイズが発生し、デコード結果が歪みます。ただし、安定拡散は潜在ノイズの除去に基づいているため、U-Net を使用してジッターによって引き起こされるノイズを除去できます。
4 回の反復後の再構成結果は、視覚的には量子化されていないバージョンに非常に近くなります。
データ量が大幅に削減されるため (ソース画像は圧縮画像の 155 倍)、効果は非常に優れていますが、また、一部のアーティファクト (元の画像には存在しないハートのパターンなど) も導入されます。
興味深いことに、この圧縮スキームでは、画質よりも画像コンテンツに大きな影響を与えるアーティファクトが発生し、この方法で圧縮された画像には、この種の圧縮アーティファクトが含まれる可能性があります。
著者は、zlib を使用してパレットとインデックスの可逆圧縮を実行しました。テスト サンプルでは、ほとんどの圧縮結果は 5kb 未満でした。 ただし、この圧縮方法にはまだ最適化の余地があります。
この圧縮コーデックを評価するために、作成者は、インターネット 上にある標準的なテスト画像を使用しませんでした。なぜなら、インターネット上の画像は、安定拡散濃度によってトレーニングされた画像が発生しており、そのような画像を圧縮すると、コントラストが不当に有利になる可能性があります。
比較をできるだけ公平にするために、作成者は Python 画像ライブラリの最高品質のエンコーダ設定を使用し、さらに mozjpeg を使用して圧縮 JPG データのロスレス データ圧縮を追加しました。図書館。Stable Diffusion の結果は、主観的には JPG や WebP 圧縮画像よりもはるかに優れているように見えますが、PSNR や SSIM などの標準測定の観点からは大幅に優れているわけではありませんが、悪くなっているわけではないことに注意してください。 導入されたアーティファクトの種類は、画質に影響を与えるよりも画像コンテンツに影響を与えるため、それほど明白ではありません。 この圧縮方法も少し危険です。再構成された特徴の品質は高くなりますが、コンテンツはたとえ非常に鮮明に見えたとしても、圧縮アーティファクトの影響を受ける可能性があります。 たとえば、テスト画像では、コーデックとしての Stable Diffusion が画像の品質を維持するのにはるかに優れていますが、カメラの粒子さえも保存されます (従来の圧縮アルゴリズムのほとんどは達成に苦労しています)、しかしそのコンテンツは依然として圧縮アーティファクトの影響を受けており、建物の形状などの細かい機能が変化する可能性があります。 JPG 圧縮画像では、安定拡散圧縮画像よりも多くの真の値を特定することは確かに不可能ですが、安定拡散圧縮結果 JPG や WebP の圧縮アーティファクトは見つけやすいため、高いビジュアル品質は欺瞞的である可能性があります。 実験を再現したい場合は、作者が でコードをオープンソース化しています。 最後に、著者は、この記事で設計された実験はまだ非常に単純ですが、その効果は依然として驚くべきものであると述べました。未来### 。
以上がStable Diffusion は JPEG などのアルゴリズムを上回り、鮮明さを維持しながら画像圧縮を改善できるでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。