How EmoVLM-KD Blends Vision Models Into an Emotion Reading VLM

Analysis by the aitrendblend editorial team Generative AI and multimodal models 11 min read
visual emotion analysis vision language models knowledge distillation instruction tuning gate module
Diagram showing a vision language model and a distilled vision model prediction merged by a gate module to classify the emotion in an image
Two models look at the same photograph of a storm damaged building and disagree about whether it conveys sadness or something closer to awe, and a team from ETRI and Sungkyunkwan University decided the right move was not to pick a side but to build a small third component whose entire job is knowing when to trust which one.

Key points

  • EmoVLM-KD combines an instruction tuned vision language model with a tiny distilled module trained to mimic a conventional vision model, then merges their predictions with a learned gate.
  • The starting observation is that vision language models and conventional vision models get different examples right and wrong, so combining them should help more than either alone.
  • The distilled module adds only about 0.003 percent to the vision language model’s parameter count, yet the combined system improved accuracy by roughly 8 percentage points over the vision language model by itself on one benchmark.
  • Across five benchmark datasets, EmoVLM-KD beat every baseline tested except on one dataset, EmoSet, where a prior instruction tuned model called EmoVIT still holds the lead.
  • A simple concatenate and linear gate beat four more elaborate gating designs, including a mixture of experts style gate, which is a useful reminder that added architectural complexity does not always pay for itself.
This article explains a published research paper. It is not a mental health assessment tool or clinical guidance. Visual emotion analysis models like the one described here predict a label from an image using statistical patterns learned from a labeled dataset, they do not understand or diagnose a person’s actual emotional or psychological state, and they should not be used to make judgments about anyone’s wellbeing.

Why one model reading emotion in a photo is not enough

Visual emotion analysis is the task of looking at an image and predicting the dominant emotion it conveys, sadness, amusement, awe, disgust, and so on. It sounds close to ordinary image classification, but the paper’s introduction is careful to draw the distinction. Recognizing that a photo contains a dog is an objective fact about pixels. Deciding that the same photo conveys contentment rather than calm or affection is a judgment about something subjective and often genuinely ambiguous, which is what makes the task meaningfully harder than standard scene recognition or semantic segmentation. Getting it right matters for a real range of applications the authors cite, including mental health related tools, understanding social relationships from shared images, and computational advertising.

Vision language models, the kind of system that can look at an image and also reason about it in natural language, have recently pushed this task forward. A prior method called EmoVIT showed that instruction tuning, fine tuning a vision language model on emotion specific question and answer pairs, could meaningfully outperform older approaches that never touched language at all. That result is the backdrop for this paper, but the authors noticed something the EmoVIT result alone did not reveal.

The complementary error pattern that motivates everything else

The authors ran a fine tuned Vision Transformer, a conventional vision only model, alongside an instruction tuned vision language model on the same images and looked at where each one succeeded or failed. The overall accuracy numbers for the two models came out close to each other, 68.86 percent for the Vision Transformer against 71.19 percent for the vision language model on one benchmark called FI, and 61.95 percent against 63.97 percent on another called Emotion6. Similar overall scores could easily suggest the two approaches are redundant, doing roughly the same job in different clothes. But breaking the results down by individual example told a different story. A substantial fraction of images were correctly classified by the Vision Transformer but missed by the vision language model, and a separate, similarly sized fraction were correctly classified by the vision language model but missed by the Vision Transformer. The two model types were not making the same mistakes, they were succeeding and failing on largely different subsets of images.

That is the finding the whole architecture is built around. A vision language model draws on broad linguistic and world knowledge absorbed during pretraining, which can help it reason about context and connotation in a scene. A conventional vision model has no language grounding at all and relies purely on learned visual features, which can make it more sensitive to certain low level visual cues that carry emotional weight, like color palette, composition, or texture, that a language heavy model might not weight as strongly. Since the two approaches are drawing on genuinely different kinds of information, combining their predictions has real headroom to outperform either one alone, provided the combination can be done without doubling the computational cost of running two large models side by side.

Takeaway

The paper’s central design choice follows directly from this diagnosis. Instead of training a single bigger model and hoping it learns to do everything a specialist vision model already does well, the authors distill the specialist’s behavior into a small add on module attached to the vision language model, keeping the big model frozen and adding only a sliver of new trainable weight.

How EmoVLM-KD is built, stage by stage

The system trains in three separate stages, each one freezing most of the network and updating only a small piece, which keeps the overall training cost manageable even though the underlying vision language model, Qwen2-VL-7b, has more than a billion parameters in its language component alone.

Stage one, instruction tuning the vision language model

The first stage fine tunes Qwen2-VL-7b on emotion specific instruction data, following the data generation approach introduced by EmoVIT. GPT-4 is used to automatically generate image, instruction, and response triplets across three instruction types. Categorical instructions ask the model to pick one emotion label from a fixed list and are the closest to a standard classification prompt. Conversation instructions ask the model to describe key visual elements of the image in natural language. Reasoning instructions ask the model to explain, in its own words, the chain of reasoning that leads from what is visible in the image to the emotion it conveys, for example noting that a dog’s relaxed posture and soft fur suggest warmth and comfort. Training on all three instruction types together is meant to give the model both the narrow skill of picking a correct label and the broader skill of reasoning about visual and emotional cues in language, which should transfer back into better categorical predictions even though the loss during this stage is only computed on the instruction response pairs.

Fine tuning itself uses QLoRA, a parameter efficient method that only updates a small set of low rank adapter weights inserted into the query, key, and value projections of the language model’s attention layers, rather than updating every parameter in the network. This keeps the vision language model’s broad pretrained knowledge largely intact while nudging it toward the emotion recognition task.

Stage two, distilling a vision model into a tiny add on module

The second stage is where the paper’s central idea plays out mechanically. A Vision Transformer is separately fine tuned on each target dataset to serve as a domain specific teacher model, learning to predict emotion categories purely from image features with no language involved. Then a small distillation module, in the simplest and best performing configuration just a single linear layer, is attached on top of the vision language model’s already pretrained visual encoder. Crucially, the visual encoder itself and the rest of the vision language model stay frozen during this stage. Only the new linear layer gets trained, and its job is to take the visual encoder’s existing features and transform them into a probability distribution over emotion categories that matches what the Vision Transformer teacher would have predicted.

The training signal for this stage combines two losses, a Kullback-Leibler divergence term that pulls the student’s output distribution toward the teacher’s softened output distribution, and a standard cross entropy term against the actual ground truth labels.

\( \mathcal{L}_{total} = \alpha \, \mathcal{L}_{KD} + (1 – \alpha)\, \mathcal{L}_{CE} \)

The temperature parameter inside the KL divergence term softens both distributions before comparing them, which in the classic knowledge distillation literature helps the student learn from the relative confidence the teacher assigns to each class rather than just its single hard prediction. The authors tested a range of values for alpha, the weighting between the two loss terms, and found 0.5 gave the best trade off between matching the teacher’s behavior and staying anchored to the ground truth labels, with performance degrading in either direction as alpha moved away from that midpoint.

Stage three, a gate that learns which model to trust

With both the instruction tuned vision language model and the distilled module ready, the final stage trains a small gate to merge their outputs. Given an image, the vision language model produces a predicted emotion category, converted into a one hot vector, and the distillation module produces a full probability distribution over categories. These two outputs are concatenated and passed through a single linear layer that maps the combined vector down to final logits over the emotion classes.

\( \hat{y} = W \cdot h + b \)

Only this final linear layer is trained in stage three, with cross entropy loss against the ground truth labels, while everything else in the pipeline, the vision language model, its visual encoder, and the distillation module, stays frozen. The gate’s entire learned behavior is deciding, based on the pattern of the two incoming predictions, how much weight to give each one for a given kind of input.

What the numbers actually show

The evaluation spans five benchmark datasets that between them cover a fairly wide range of emotion taxonomies and image sources. EmoSet and FI use Mikel’s eight basic emotion categories, spanning 118,102 and 21,824 images respectively. Emotion6 uses Ekman’s six basic emotions across 1,980 images. Flickr and Instagram, with 60,738 and 42,832 images respectively, use a simplified binary positive or negative label instead of discrete emotion categories.

Selected accuracy results across the five benchmark datasets, percent, adapted from Table 1
ModelEmoSetFIEmotion6FlickrInstagram
ViT, conventional vision model78.2768.8661.9585.5485.41
MDAN, VEA-specific model75.7576.4161.6684.2683.52
LLaVA-Next, zero-shot VLM54.9360.1753.3674.6778.02
EmoVIT, instruction-tuned VLM83.3668.0957.81
EmoVLM-KD, proposed79.8379.5173.9188.9089.59

The most striking single comparison is FI and Emotion6, where EmoVLM-KD improved on the plain Vision Transformer by roughly 11 and 12 percentage points respectively, and improved on the best domain specific VEA model tested, MDAN, by about 3 and 12 points on the same two datasets. Zero shot vision language models with no emotion specific tuning at all, InstructBLIP, Qwen2-VL-7b, and LLaVA-Next, performed considerably worse across the board, with InstructBLIP in particular struggling badly, reaching only 19.14 percent on EmoSet, which underlines how much the instruction tuning stage alone contributes before distillation ever enters the picture.

The one dataset where EmoVLM-KD did not come out on top was EmoSet, the largest dataset in the study at over 118,000 images, where EmoVIT’s 83.36 percent beat EmoVLM-KD’s 79.83 percent. The paper does not dwell on why, but a plausible reading is that EmoVIT was specifically developed and tuned against EmoSet as something close to its home benchmark, and a very large, relatively clean dataset may simply give a well tuned instruction only approach less room for a distilled vision model’s complementary signal to add value, compared with smaller or noisier benchmarks where the two model types’ blind spots diverge more.

The significant proportions of ViT-only and VLM-only suggest the need for the two models to complement each other. Lee, Lee, and Park, arXiv 2505.07164, 2025

The distilled module alone beats its own teacher, which is worth sitting with

One ablation result is genuinely counterintuitive enough to deserve its own attention. Isolating each component on the FI dataset, the plain instruction tuned vision language model alone scored 71.19 percent, and the Vision Transformer teacher model alone scored 68.86 percent. The distillation module by itself, despite being trained explicitly to imitate that same Vision Transformer teacher, scored 77.37 percent, meaningfully higher than the teacher it was trained to copy.

Trainable parameter count and accuracy by module configuration on FI, adapted from Table 2
ConfigurationParameter countAccuracy
VLM alone1,091,870,72071.19%
Distillation module alone3,679,24077.37%
ViT teacher alone85,804,80868.86%
EmoVLM-KD, full system1,095,550,09679.51%

The explanation the authors offer is that the distillation loss is not pure imitation, it is a weighted combination of matching the teacher’s output distribution and directly minimizing cross entropy against the true ground truth labels, with the balance point at alpha equal to 0.5 giving equal weight to both. A student trained that way is not capped by the teacher’s ceiling, it can pick up the teacher’s general behavioral pattern through the distillation term while still correcting toward the true label through the supervised term, and evidently that combination let the small linear module surpass the much larger teacher it was nominally copying. Layering the distillation module on top of the vision language model’s own pretrained visual encoder, rather than training it from a blank slate, likely also matters here, since the module effectively inherits a strong visual representation for free and only has to learn how to read emotion signal out of it.

Putting the full system together, EmoVLM-KD reached 79.51 percent, an improvement of roughly 8 percentage points over the vision language model in isolation, achieved by adding only about 3.68 million trainable parameters for the distillation module and a comparatively tiny gate on top, against a backbone of over a billion parameters. The authors frame this as a 0.003 percent parameter increase relative to the vision language model’s size, which is a fair way to describe just how lightweight the add on machinery is next to the frozen giant it is bolted onto.

Shallow beats deep for the distillation module

A separate depth ablation tested distillation modules ranging from a single 1024 dimensional linear layer up to five stacked layers narrowing down to 64 dimensions. Counterintuitively for anyone used to the general trend that deeper networks tend to do more, accuracy dropped steadily as more layers were added, from 79.51 percent with one layer down to 68.59 percent with five layers on FI, and a similar decline from 73.91 percent to 63.30 percent on Emotion6. A single linear layer with more parameters actually outperformed a deeper stack with fewer overall parameters per layer but more total depth. The likely explanation is that the visual encoder inside the vision language model has already done the heavy representational lifting during its own large scale pretraining, so the distillation module’s real job is a comparatively simple linear readout translating those existing features into emotion predictions, not learning a new hierarchy of visual abstractions from scratch, and adding depth here mostly adds optimization difficulty without adding useful capacity.

A simple gate wins, but not by a wide margin

The final ablation compared five different ways of merging the vision language model’s and distillation module’s predictions, ranging from the simple concatenate and pass through a linear layer approach actually used in the main system, up to a mixture of experts style gate, a bilinear pooling gate, a dynamic weighting gate, and a cross gating mechanism using paired sigmoid gates. The differences among all five were fairly narrow, with accuracy on FI ranging from 78.01 percent for the most complex cross gating approach up to 79.51 percent for the simplest concatenate and linear approach. The authors do not read much into this beyond adopting the simplest, best performing option, but it is a useful data point for anyone tempted to reach for an elaborate gating mechanism by default. Here, at least, the added complexity bought nothing.

What the qualitative examples reveal about how the gate behaves

The paper includes six side by side examples showing the vision language model’s prediction, the distillation module’s prediction, the combined EmoVLM-KD prediction, and the ground truth label. Three examples show the vision language model getting it right while the distillation module fails, and three show the reverse. In every one of the six cases shown, the final gated prediction matches whichever of the two component models happened to be correct, which is exactly the behavior the architecture is meant to produce. In one example, a ground truth label of sadness is correctly predicted by the distillation module while the vision language model instead predicts disgust, and the gate ends up weighting the distillation module’s output more heavily for that image, landing on the correct answer. The authors present this as evidence the gate is not simply averaging or defaulting to one model most of the time, it is adapting its weighting on a per example basis based on the actual pattern of the two inputs it receives.

Where this sits relative to prior visual emotion analysis work

The related work section traces a reasonably clear line of progress in this field, from early handcrafted low level visual feature methods, through CNN and Transformer based approaches with dedicated architectural tricks for emotion recognition such as attention over emotionally salient image regions or object level semantic reasoning, up through the recent wave of vision language model based approaches this paper builds directly on. EmoVIT, the instruction tuned vision language model this paper compares against most directly and beats on four of five benchmarks, represents the immediately prior state of the art for bringing large language model style instruction tuning into this task. A separate line of work the authors cite, Emotion-LLaMA, pursues multimodal emotion recognition by fusing audio, visual, and textual signals together rather than distilling a second vision model into a single modality pipeline, which points to knowledge distillation and multi stream fusion as two somewhat different strategies researchers in this space are exploring in parallel for squeezing more signal out of complementary sources of information.

Honest limitations to keep in mind

  • EmoVLM-KD did not outperform EmoVIT on EmoSet, the largest of the five benchmark datasets, so the claim of consistently state of the art performance holds for four of five datasets rather than all five, and the paper does not offer a detailed explanation for that one exception.
  • The Vision Transformer teacher used for distillation is fine tuned separately on each target dataset rather than being a single generalist model, so applying this approach to a brand new dataset or emotion taxonomy would require first training a new domain specific teacher, which is an added step beyond simply reusing the released system.
  • Visual emotion analysis as a task inherits a degree of inherent subjectivity and cultural variability in how emotions are labeled and perceived, an issue that predates and extends beyond this particular paper, and predicted labels reflect statistical patterns in labeled training data rather than any deeper understanding of an image’s meaning or a viewer’s actual emotional response.
  • The datasets used span a specific set of standard emotion taxonomies, Mikel’s eight categories, Ekman’s six categories, and binary positive versus negative sentiment, and performance on emotion categories or cultural contexts outside those taxonomies is untested here, a gap the authors flag directly as future work.
  • The paper’s own stated next steps, extending the category set and incorporating additional modalities such as audio or text accompanying an image, indicate the authors themselves view the current single modality, fixed category scope as a real boundary on the present system rather than a finished capability.

A simplified PyTorch implementation of the distillation and gating stages

The code below reimplements the mechanics of stage two and stage three, the knowledge distillation loss from equations 1 through 3 and the gate module from equation 4, using small stand in encoders so the whole thing runs as a readable, self contained smoke test rather than requiring a full Qwen2-VL-7b checkpoint.

import torch import torch.nn as nn import torch.nn.functional as F # —————————————————————— # EmoVLM-KD, stage 2 (knowledge distillation) and stage 3 (gate module) # Reimplemented from Lee, Lee, and Park, arXiv:2505.07164, 2025 # —————————————————————— class DistillationModule(nn.Module): “”” Stands in for the single linear layer attached to the frozen visual encoder of the VLM. Table 3 in the paper shows a single 1024 dimensional layer outperforms deeper stacks. “”” def __init__(self, visual_feature_dim, num_classes, hidden_dim=1024): super().__init__() self.linear = nn.Linear(visual_feature_dim, hidden_dim) self.classifier = nn.Linear(hidden_dim, num_classes) def forward(self, visual_features): h = F.relu(self.linear(visual_features)) return self.classifier(h) def distillation_loss(student_logits, teacher_logits, targets, alpha=0.5, temperature=2.0): “”” Equation 3, a weighted sum of a temperature scaled KL divergence term (equation 1) and a standard cross entropy term (equation 2). “”” student_log_probs = F.log_softmax(student_logits / temperature, dim=-1) teacher_probs = F.softmax(teacher_logits / temperature, dim=-1) kd_term = F.kl_div(student_log_probs, teacher_probs, reduction=“batchmean”) * (temperature ** 2) ce_term = F.cross_entropy(student_logits, targets) total_loss = alpha * kd_term + (1 – alpha) * ce_term return total_loss, {“kd_term”: kd_term.item(), “ce_term”: ce_term.item(), “total_loss”: total_loss.item()} class GateModule(nn.Module): “”” Equation 4. Concatenates the VLM’s one hot prediction with the distillation module’s probability distribution and passes the result through a single linear layer, the best performing gate design out of the five compared in Table 4. “”” def __init__(self, num_classes): super().__init__() self.linear = nn.Linear(num_classes * 2, num_classes) def forward(self, vlm_onehot, distill_probs): h = torch.cat([vlm_onehot, distill_probs], dim=-1) return self.linear(h) def vlm_prediction_to_onehot(vlm_logits, num_classes): “””The VLM outputs a discrete label, converted to a one hot vector””” pred_ids = vlm_logits.argmax(dim=-1) return F.one_hot(pred_ids, num_classes=num_classes).float() if __name__ == “__main__”: # Smoke test on dummy features standing in for a batch of image embeddings torch.manual_seed(0) batch_size, visual_dim, num_classes = 8, 512, 8 # 8 classes, matching Mikel’s basic emotions visual_features = torch.randn(batch_size, visual_dim) targets = torch.randint(0, num_classes, (batch_size,)) # Stand in for the fine tuned ViT teacher’s frozen logits teacher_logits = torch.randn(batch_size, num_classes) * 2.0 student = DistillationModule(visual_dim, num_classes) optimizer = torch.optim.AdamW(student.parameters(), lr=1e-3) # Stage 2, train the distillation module against the frozen teacher for step in range(5): optimizer.zero_grad() student_logits = student(visual_features) loss, logs = distillation_loss(student_logits, teacher_logits, targets, alpha=0.5) loss.backward() optimizer.step() print(f”distill step {step}”, logs) # Stage 3, train the gate on top of frozen VLM and distillation outputs gate = GateModule(num_classes) gate_optimizer = torch.optim.AdamW(gate.parameters(), lr=1e-3) # Stand in for the frozen, already instruction tuned VLM’s prediction vlm_logits = torch.randn(batch_size, num_classes) with torch.no_grad(): vlm_onehot = vlm_prediction_to_onehot(vlm_logits, num_classes) distill_probs = F.softmax(student(visual_features), dim=-1) for step in range(5): gate_optimizer.zero_grad() final_logits = gate(vlm_onehot, distill_probs) gate_loss = F.cross_entropy(final_logits, targets) gate_loss.backward() gate_optimizer.step() print(f”gate step {step}, loss”, gate_loss.item()) accuracy = (final_logits.argmax(dim=-1) == targets).float().mean().item() print(“Smoke test finished, toy training accuracy”, accuracy)

Two caveats before adapting this for anything real. First, the actual system uses a frozen Qwen2-VL-7b visual encoder to produce the visual features fed into the distillation module, and a frozen, dataset specific fine tuned Vision Transformer as the teacher, both of which this snippet replaces with random tensors purely to keep the example runnable without downloading multi gigabyte checkpoints. Second, in the full pipeline the VLM’s prediction in stage three comes from prompting the language model with a categorical instruction and parsing its text response into a label, a step this snippet skips by directly simulating logits, so a faithful reimplementation would need the actual instruction tuned generation and parsing logic from stage one in place first.

The bigger picture

The idea underneath EmoVLM-KD is not really specific to emotion recognition, and that is probably the most durable takeaway here. Large vision language models are good at some things because of the broad world knowledge baked in through language pretraining, and they are weaker at other things that smaller, narrower models trained directly and only on a specific task still tend to handle better, because that narrower training lets them specialize on cues a generalist model never had strong incentive to pick up on. The obvious response to that gap is an ensemble, run both models and combine their outputs, but running two large models side by side is expensive, and this paper’s contribution is really a cheap way to approximate an ensemble’s benefit without paying an ensemble’s full compute bill, by distilling the smaller specialist’s behavior into a few thousand extra parameters bolted onto the larger generalist model that stays otherwise untouched.

What makes the result convincing rather than just plausible is the ablation table showing the distilled module alone beating its own teacher, and the qualitative examples showing the gate correctly flipping its trust between the two component models on a per image basis rather than settling into a fixed blend. Both of those results argue that something real is happening in the combination step, not just noise averaging out in the model’s favor. The gate architecture ablation, where a plain linear layer beat four fancier designs, is also worth remembering the next time a more complicated fusion mechanism seems like the obvious upgrade, since here it was not.

The honest gap that remains is generalization beyond the fixed emotion taxonomies and single image modality tested here, and the authors are explicit that extending to more emotion categories and additional modalities such as audio or accompanying text is where they intend to take this next. Whether the specific combination of QLoRA instruction tuning, a linear distillation module, and a concatenate and linear gate remains the preferred recipe as the field moves toward richer multimodal emotion recognition, or gets absorbed into some more unified multimodal training approach, the underlying strategy, distilling a narrow specialist’s strengths into a frozen generalist rather than trying to retrain the generalist to acquire those strengths itself, looks like a genuinely reusable pattern for anyone building on top of a large pretrained vision language model without the budget to retrain it from scratch.

Frequently asked questions

What is EmoVLM-KD

EmoVLM-KD is a system for visual emotion analysis that combines an instruction tuned vision language model, Qwen2-VL-7b, with a small module distilled from a conventional Vision Transformer, merging the two models’ predictions through a learned gate to classify the dominant emotion conveyed by an image.

Why combine a vision language model with a conventional vision model instead of just using one

The authors found that vision language models and conventional vision models correctly classify largely different, only partially overlapping sets of images, despite having similar overall accuracy, which suggests the two approaches draw on complementary sources of information and that combining them should outperform either one alone.

How much extra computation does the distillation module add

The distillation module adds roughly 3.68 million trainable parameters on top of a vision language model backbone with more than a billion parameters, which the authors describe as about a 0.003 percent increase, while improving accuracy on the FI benchmark from 71.19 percent for the vision language model alone to 79.51 percent for the combined system.

Does EmoVLM-KD beat every existing method

It beats every baseline tested on four of the five benchmark datasets, FI, Emotion6, Flickr, and Instagram, but on the largest dataset, EmoSet, a prior instruction tuned model called EmoVIT still scores higher, 83.36 percent against 79.83 percent for EmoVLM-KD.

Is this system meant to be used for mental health assessment

No. The paper mentions mental health as one of several application areas that motivate research into visual emotion analysis broadly, but EmoVLM-KD itself is a benchmark classification model trained on labeled emotion datasets, not a validated clinical or diagnostic tool, and it should not be used to assess anyone’s actual psychological state.

Read the full paper for the complete architecture diagrams, the instruction data examples, and the additional ablation studies on hyperparameter and gate design choices.

Read the paper Code on GitHub
Lee, S., Lee, Y., and Park, E. EmoVLM-KD: Fusing Distilled Expertise with Vision-Language Models for Visual Emotion Analysis. arXiv:2505.07164, 2025. https://arxiv.org/abs/2505.07164.

This analysis is based on the published paper and an independent evaluation of its claims.

Related reading

1 thought on “How EmoVLM-KD Blends Vision Models Into an Emotion Reading VLM”

  1. Pingback: 7 Revolutionary Advancements in Skin Cancer Detection (With a Powerful New AI Tool That Outperforms Existing Models) - aitrendblend.com

Leave a Comment

Your email address will not be published. Required fields are marked *